我想将一个类传递给一个函数。在该函数中,创建了其他类的新实例。
然后,我希望能够找到哪个对象有我传递的类的实例:
public void doSomething(Class cls) {
SomeObject obj = new SomeObject();
if (obj instanceof cls) {
// Do amazing things here
}
}
class Person {
// This exists
}
doSomething(Person.class);
上面的代码不起作用。我希望我能够清楚地知道自己要做什么。
答案 0 :(得分:6)
您想使用https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#isInstance-java.lang.Object-。
if (cls.isInstance(obj)){
...
}
答案 1 :(得分:1)
如果您想查看对象是否是类类型的实例,则需要调用isInstance
:
if (cls.isInstance(obj)){
}
或者你可以isAssignableFrom
:
if (clas.isAssignableFrom(obj.getClass())) {
}