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

标签 java

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

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

相关文章:

java - java : NaN 中两个地理位置之间的距离

java - java如何从字符串中解析int?

Java邮件: Setting Chinese Encoding

java - 如何获得此 double 组以进行打印而不会出现错误?

java - RSA 逐 block 加密对大于 1kb 的文件产生空白输出

java - 为什么多边形可以显示但点却不能显示

java - 应用后壁纸会自动裁剪

java - 如何在java代码中使用wrap_cotent创建LinearLayout?

java - 使用 wait() 时的同步方法

java - 每个请求在 VertX 中设置单独的超时