检查类是否属于某种类型

时间:2016-10-30 19:33:49

标签: java class generics

我尝试在类中创建一个方法,该方法将Class作为参数,并检查当前对象是否属于该类型。我的代码:

public class MyEvent extends MyBPMNNode {

public boolean isKindOf(Class<?> node) {
    boolean b = MyEvent.this instanceof node;
    return b;
}

但我编译它给了我:

Error:(9, 45) java: cannot find symbol
symbol:   class node

我在这里做错了什么?也许我对'Class&#39;上课不对。

3 个答案:

答案 0 :(得分:1)

你想:

public boolean isKindOf(Class<?> clazz) {
    return clazz.isInstance(this);
}

答案 1 :(得分:-1)

您可能在node.isAssignableFrom(MyEvent.this)之后。

答案 2 :(得分:-2)

您正在引入泛型,没有特别的原因。试试这个:

    public boolean isKindOf(Object node) {
        // weak
        return node.getClass().isAssignableFrom(getClass());
        // stronger, but not appropriate in your case
        //return this.getClass().equals(node.getClass());
    }
安迪特纳的回答更为简洁。请原谅我。