比较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

回到顶部