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