比较Java中的类类型
我想比较Java中的类类型。
我以为我可以这样做:
class MyObject_1 {}class MyObject_2 extends MyObject_1 {}
public boolean function(MyObject_1 obj) {
if(obj.getClass() == MyObject_2.class) System.out.println("true");
}
我想比较一下是否传递给函数的obj是从MyObject_1扩展而来的。但这是行不通的。似乎getClass()方法和.class提供了不同类型的信息。
如何比较两个类类型,而不必创建另一个伪对象来比较类类型?
回答:
试试这个:
MyObject obj = new MyObject();if(obj instanceof MyObject){System.out.println("true");} //true
由于继承,这对接口也有效:
class Animal {}class Dog extends Animal {}
Dog obj = new Dog();
Animal animal = new Dog();
if(obj instanceof Animal){System.out.println("true");} //true
if(animal instanceof Animal){System.out.println("true");} //true
if(animal instanceof Dog){System.out.println("true");} //true
有关instanceof的更多信息,请访问:http :
//mindprod.com/jgloss/instanceof.html
以上是 比较Java中的类类型 的全部内容, 来源链接: utcz.com/qa/401335.html