使用 while 循环,从静态上下文引用问题

Using while loop, issue with referencing from static context

目前我正在 BlueJ 中完成一项任务。 我的问题很简单(我希望如此)。我希望在 while 循环中使用的方法是 "getRearWheelDrive()",它检查 ArrayList< Lamborghini > inventory 中有多少兰博基尼有后轮驱动。 rearWheelDrive 是一个布尔变量。

此外,我不能对这个问题使用for循环,否则我会因为它会容易得多。我仅限于 while 循环。

我收到的错误消息是:"non-static method getIsRearWheelDrive() cannot be referenced from a static context" - 我试图创建一个静态方法,但它也不起作用。

//

如何检查 ArrayList 库中的所有 Lamborghini 对象,然后 return 一个 int 值表示总共有多少个 rearWheelDrive?另外,对于我当前的代码,它会在到达索引末尾时导致循环结束,还是会无限循环?

public int howManyAreRearWheelDrive()
{
    int indexPlace = 0;
    int number = 0;
    int i = 0;

    while(indexPlace <= inventory.size()) 
    {
        indexPlace++;
        inventory.get(i);
        i++;

        if(Lamborghini.getIsRearWheelDrive() == true) {
            number++;
        }
    }
    return number;

}

您需要从兰博基尼 class 的实例而不是 class 本身调用 getIsRearWheelDrive。只能使用 class 名称调用静态变量,此处并非如此。

在此示例中,它将是

inventory.get(i).getIsRearWheelDrive();

没有看到其他相关的 类 正在播放:

while(indexPlace < inventory.size()) 
{
    if(inventory.get(indexPlace++).getIsRearWheelDrive() == true) {
        number++;
    }
}