1

有没有办法根据方法的传递参数使用 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 条件。那可能吗?如果是这样,怎么做?:)

谢谢

4

2 回答 2

6

您正在寻找Class.isInstance()方法

public void doSomething(Class<?> c, Object myObject) {
    if (c.isInstance(myObject)) {...}
}
于 2012-12-07T17:30:10.817 回答
2

据我所知,这是这样做的方法:

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

用法:

System.out.println(doInstanceOf(myObject,MyClass.class));
于 2012-12-07T17:30:38.443 回答