public class MotorCar extends Vehicle
{
    private String engCap;

    public double getLicenseFee()
    {
        double fee;

        if(this.engCap < "1500cc")
        {
            return fee = 750;
        }
        else if(this.engCap > "1500cc" && this.engCap < "2500cc")
        {
            return fee = 900;
        }
        else(this.engCap > "2500cc")
        {
            return fee = 1250;
        }

    }

}


这有什么问题?

最佳答案

您不能使用小于<和大于>运算符比较字符串(或任何其他对象)。

如果将engCap变量更改为int并删除“ cc”部分,则可以按照您尝试的方式进行比较。

例如:

public class MotorCar extends Vehicle {
    private int engCap;

    public double getLicenseFee() {
        double fee;

        if(this.engCap < 1500) {
            return fee = 750;
        } else if(this.engCap > 1500 && this.engCap < 2500) {
            return fee = 900;
        } else(this.engCap > 2500) {
            return fee = 1250;
        }
    }
}

关于java - 二进制运算符的操作数类型错误。我在以下程序中收到该错误。请解释为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15911607/

10-11 17:19