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

Kev*_*dra 1 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
}
Run Code Online (Sandbox Code Playgroud)

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

Lou*_*man 7

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