我有条件 -
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
}
我很好奇为什么这个条件会引发语法错误。我在这里做错了吗?
答案 0 :(得分:7)
是的,您应该使用type.isInstance(a)
。 instanceof
不适用于Class
类型的对象,但适用于类名,例如a instanceof String
,而非a instanceof String.class
。