以通用方式使用instanceof

时间:2012-12-07 17:27:40

标签: java instanceof

有没有办法根据方法的传递参数使用instanceof?实施例

doSomething(myClass.class); /* I would like to call this also with other classes */

public void doSomething(/*generic parameter that accepts all classes, not just myClass */) {
  if (myObject instanceOf /* the generic parameter */ == true) {...}
}

有时我会使用myClass.class调用该方法,但有时我想使用someOtherClass.class调用它 - 我不想更改if条件。那可能吗?如果是这样,怎么样? :)

由于

2 个答案:

答案 0 :(得分:6)

您正在寻找Class.isInstance() method

public void doSomething(Class<?> c, Object myObject) {
    if (c.isInstance(myObject)) {...}
}

答案 1 :(得分:2)

据我所知,这是做到这一点的方法:

public static <T> boolean doInstanceOf(Object object,Class<T> clz) {
        return clz.isInstance(object);
    }

用法:

System.out.println(doInstanceOf(myObject,MyClass.class));