Java 检查类是否属于特定类型
我试图在类中创建一个方法,该方法将Java 检查类是否属于特定类型,java,class,generics,Java,Class,Generics,我试图在类中创建一个方法,该方法将class作为参数,并检查当前对象是否属于该类型。我的守则如下: public class MyEvent extends MyBPMNNode { public boolean isKindOf(Class<?> node) { boolean b = MyEvent.this instanceof node; return b; } 我做错了什么?也许我对“类”类的理解不正确。您引入泛型并没有什么特别的原因。试试这个:
class
作为参数,并检查当前对象是否属于该类型。我的守则如下:
public class MyEvent extends MyBPMNNode {
public boolean isKindOf(Class<?> node) {
boolean b = MyEvent.this instanceof node;
return b;
}
我做错了什么?也许我对“
类
”类的理解不正确。您引入泛型并没有什么特别的原因。试试这个:
public boolean isKindOf(Object node) {
// weak
return node.getClass().isAssignableFrom(getClass());
// stronger, but not appropriate in your case
//return this.getClass().equals(node.getClass());
}
安迪·特纳的回答要简洁得多。对不起。您可能在
节点之后。isAssignableFrom(MyEvent.this)
您想要:
public boolean isKindOf(Class<?> clazz) {
return clazz.isInstance(this);
}
public boolean isKindOf(类clazz){
返回clazz.isInstance(本);
}
节点。isAssignableFrom(this)
instanceof
需要一个编译时常量作为第二个操作数。更正:instanceof
需要一个引用类型作为第二个操作数。@AndyTurner:。isAssignableFrom()
接受一个类<代码>此
不是类
public boolean isKindOf(Class<?> clazz) {
return clazz.isInstance(this);
}