instanceof运算符不使用类类型变量

时间:2014-03-28 18:53:55

标签: java class instanceof

我有条件 -

public class A {}
public class B extends A {}
A a = new B();



boolean flag = a instanceof B; // returns true

public boolean isOfType(A a, Class<? extends A> type) {
    return (a instanceof type); // throws syntax error
}

我很好奇为什么这个条件会引发语法错误。我在这里做错了吗?

1 个答案:

答案 0 :(得分:7)

是的,您应该使用type.isInstance(a)instanceof不适用于Class类型的对象,但适用于类名,例如a instanceof String,而非a instanceof String.class