2017-11-09 10 views
0

카드 보드에 toString을 만들려고합니다. 내가 "무효 형이 여기에 허용되지 않습니다"이야기하고 컴파일하려고하고이 라인에 저를 지적 할 때 :여기서 'void'유형이 허용되지 않는 이유는 무엇입니까?

visualBoard = visualBoard + row + System.out.println(); 

을 여기 전체 방법으로 끝입니다. 난 정말 그들이 행 말해 이유를 혼동하고있어

/** 
    Makes a visual representation of the board. 
    @param game board 
    @return String visual of the board. 
    */ 
    @Override 
    public String toString() 
    { 
    String visualBoard = ""; 
    //For loop for each spot on board 
    for(int r = 0; r < 3; r++){ 
     String row = ""; 
     for(int c = 0; c < 4; c++){ 
      //Adding the board square to the current string. 
      BoardSquare current = board.get(r).get(c); 
      row += current.getCard(r,c).toString() + "_"; 
     } 
     visualBoard = visualBoard + row + System.out.println(); 

    } 
    return visualBoard; 
    } 

내가 그 안에 문자열을 넣어 않았기 때문에 무효 유형입니다. 이견있는 사람?

+2

:

당신이 뭔가에 빈 문자열을 연결하려는 경우,이 할 수있는 방법은? 왜 그렇게 생각하니? –

+0

나는 다음 줄로 넘어갈 것이지만. –

+2

아마도 당신은'System.lineSeparator()'를 찾고있을 것입니다. – Zong

답변

1

void은 메소드에 반환 값이 없음을 의미합니다.

System.out.println은 무효이므로 값을 반환하지 않습니다.

따라서 +에는 아무 것도 추가 할 필요가 없으며 컴파일러는 불평합니다.

0

이 줄은 올바르지 않습니다

visualBoard = visualBoard + row + System.out.println(); 

에서 System.out.println()의 호출에 문자열 값을 반환하지 않습니다, 그것의 반환 유형은 무효입니다. stdout 스트림에 모든 문자열 인수를 인쇄합니다. 그것이 당신이 그 오류를 얻는 이유입니다. 당신`에서 System.out.println()`않습니다 어떻게 생각하십니까

visualBoard = visualBoard + row + "";