不需要任何代码,只需要某种指导。想保持我的学术诚信;)
我一直收到那个烦人的错误。我需要为每个 Room 实例调用 toString 方法。有什么建议么?如果可能的话,我希望在 2 小时内得到答复。
public class Hotel
{
//constant
public static final int NUM_ROOMS = 20;
//variables
public Room[] theRoom;
public String name;
public int totalDays;
public double totalRate;
public int singleCount;
public int doubleCount;
public int roomsRented;
public int NOT_FOUND;
public Hotel(String newName) {
name = newName;
Room[] Rooms = new Room[NUM_ROOMS];
}
public double getTotalRentalSales() {
return totalRate + roomsRented;
}
public double getAvgDays() {
return roomsRented/totalDays;
}
public double getAvgRate() {
return totalRate/roomsRented;
}
public int getSingleCount() {
return singleCount;
}
public int getDoubleCount() {
return doubleCount;
}
public String printRentalList() {
System.out.println("Room Information: " + Room.toString());
}
}
最佳答案
您不应尝试在 Room 类上调用 toString()
,而应在 Room 对象 上调用。在该方法中,使用 for 循环遍历房间数组,并打印通过为数组中保存的每个 Room 对象调用 toString()
返回的字符串,因为这看起来像您的方法应该做的.
例如
System.out.println("All Foos held here include: ");
// using a "for-each" loop, assuming an array called fooArray that holds Foo objects
for (Foo foo: fooArray) {
System.out.println(foo);
}
您显然必须更改代码的类型和变量名称。
编辑 2:虽然您必须使用标准的 for 循环,而不是 for-each 循环,因为您不会遍历整个数组,而是在达到 roomsRented 计数时退出。
System.out.println("All Foos held here include: ");
// using standard for loop, assuming an array called fooArray that holds Foo objects
for (int i = 0; i < someMaxNumber; i++) {
System.out.println(fooArray[i]);
}
关于java - 不能从静态上下文中引用非静态方法 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538097/