【问题标题】:Using Iterator error使用迭代器错误
【发布时间】:2015-12-02 06:52:26
【问题描述】:

我正在使用下面的方法,这将提供我计算有多少汽车有后轮驱动。 Array List 将其存储为布尔值。

当我尝试编译时出现找不到符号的错误 - 变量 getIsRearWheelDrive。我的兰博基尼类中有这个方法。

public int howManyAreRearWheelDrive()
    {
        int i = 0;
        Iterator<Lamborghini> rear = inventory.iterator();
        while(rear.hasNext()){
            Lamborghini nextLamb = rear.next();
            if(nextLamb.getIsRearWheelDrive.equals(true))
            {               
                int rearHold = nextLamb.getIsRearWheelDrive();
                i++;
            }  
            return rearHold;
        }

Lamborghini class
public boolean getIsRearWheelDrive()
    {
        return isRearWheelDrive;
    }    

【问题讨论】:

  • 使用 if(nextLamb.getIsRearWheelDrive().equals(true)) 。您忘记在方法中添加 ()(功能括号)。 getIsRearWheelDrive 不是变量而是函数。

标签: java arraylist iterator


【解决方案1】:

这段代码有很多错误,我会在里面添加cmets

public int howManyAreRearWheelDrive()
{
    int i = 0;
    Iterator<Lamborghini> rear = inventory.iterator();
    while(rear.hasNext()){
        Lamborghini nextLamb = rear.next();

        if(nextLamb.getIsRearWheelDrive ()) // this is a method .equals(true))

        {               
            // int rearHold = nextLamb.getIsRearWheelDrive();
            // why cast this to an local int??
            i++;
        }  
        // return rearHold;
        // readHold is not in scope here
        // if you return here, the while loop will not complete
        // the variable i is hold the value you want
    }

//Lamborghini class
public boolean getIsRearWheelDrive()
{
    return isRearWheelDrive;
}    

【讨论】:

    【解决方案2】:

    尝试改变这一行:

     if(nextLamb.getIsRearWheelDrive.equals(true))
    

    用这一行:

     if(nextLamb.getIsRearWheelDrive())
    

    因为getIsRearWheelDrive() 方法返回一个布尔值。
    并创建变量isRearWheelDrive

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 2022-11-27
      • 2019-01-22
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      相关资源
      最近更新 更多