我有一个类 Game
,它有一个 toString
方法。
我想使用嵌套的 for 循环来迭代数组,然后对于该数组的指定索引中的每个 Tile
元素,根据该 Tile< 打印出特定字符串
的属性位于我在 Tile
类中编写的 toString
方法内。
如果这是适当的逻辑,我该如何实现呢?我无法正确匹配两个 toString
方法之间的参数。
public String toString(tileArr){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
tileArr[i][j].toString(t);
}
System.out.print("\n");
}
return "";
}
最佳答案
您混淆了两个概念:在内存中创建字符串和打印。
您的 toString() 方法不应调用 System.out.println()
。相反,它应该只是创建一个字符串,该字符串可以由某个调用者打印。
此外,如果您尝试提供传统的 toString()
方法,它不接受任何参数。由于它是一个实例方法,因此它可以访问对象的字段。
public class Game {
private int rows, columns;
private int tileArr[][];
...
public String toString(){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
builder.append( tileArr[i][j].toString() );
builder.append(" "); // If tiles need to be separated.
}
builder.append("\n");
}
return builder.toString();
}
}
关于java - 对对象调用 toString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33179723/