为什么我这里不允许“无效”类型?

时间:2017-11-09 22:59:21

标签: java string tostring

我正在尝试为一块纸板制作一个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;
  }

我真的很困惑为什么他们告诉我row是一个void类型,因为我确实在其中放了一个字符串。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

方法上的

void表示没有返回值。

System.out.println无效,因此不会返回值。

因此+没有任何要添加的内容,编译器会抱怨。

答案 1 :(得分:0)

此行不正确:

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

System.out.println()不会向其调用者返回字符串值,其返回类型为void。它只是在stdout流上打印任何字符串参数。这就是你得到这个错误的原因。

如果你想将一个空字符串连接到某个东西,这就是这样做的方法:

visualBoard = visualBoard + row + "";