不兼容的操作数类型

时间:2014-02-02 17:46:18

标签: java

我创建了一个班级及其孩子。现在,我需要检查子项是否是父项的实例,但我得到不兼容的操作数类型。

class Vehicle {

}

class Car extends Vehicle {

}

public class Test {

    public static void main(String[] args) {
        Vehicle v = new Vehicle();
        Car c = new Car();

        if (c instanceof v) {
        }

    }

}

3 个答案:

答案 0 :(得分:5)

instanceof关键字需要用作

ReferenceTypeExpression instanceof ReferenceType

您正在使用它

ReferenceTypeExpression instanceof ReferenceTypeExpression 

你应该有

if (c instanceof Vehicle) {

以上说明正确使用instanceof运算符,但请注意JB Nizet's comment

答案 1 :(得分:3)

Class课程中使用isAssignableFrom()方法。

if (c.getClass().isAssignableFrom(v.getClass())) {
    ...
}

答案 2 :(得分:1)

instanceof需要将引用变量a与类b进行比较。