java - 二元运算符的操作数类型错误。我收到以下程序的错误。请解释为什么?

标签 java oop

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/

相关文章:

java - NetSuite java.lang.NoClassDefFoundError : sun/io/MalformedInputException on getConnection

java - 从接口(interface)实现方法但具有不同的参数

java - 如果在 sleep 线程上调用interrupt()会发生什么?

java - 包不在 src 文件夹中

php - 用于 PHP 中静态属性的魔术 __get getter

Java以接口(interface)作为参数覆盖抽象类方法

java - 类 创建方法时的返回类型

database - 面向对象的数据库还在使用吗?

java - 当我在文本字段中输入 "1"时,如何使按钮起作用?

java - 读取蓝牙设备时出现空指针异常