Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查类是否属于特定类型_Java_Class_Generics - Fatal编程技术网

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);
}