我创建了一个班级及其孩子。现在,我需要检查子项是否是父项的实例,但我得到不兼容的操作数类型。
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) {
}
}
}
答案 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进行比较。