gpt4 book ai didi

java - 不能从静态上下文中引用非静态方法 toString()

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:46 24 4
gpt4 key购买 nike

不需要任何代码,只需要某种指导。想保持我的学术诚信;)

我一直收到那个烦人的错误。我需要为每个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com