Java确定对象是哪个类

时间:2012-01-09 22:35:49

标签: java oop class object

我有三个类(CarnivoreHerbivorePlant)扩展了另一个类(Organism)。如何判断对象属于哪个子类?到目前为止,我有一个具有类名称的属性,但我认为可以使用类似于javascript类型的运算符。 (类似于:Organism typeof Carnivore

6 个答案:

答案 0 :(得分:3)

您可以使用instanceof关键字。

但请注意,需要使用此功能通常是设计不良的标志。您通常应该在每个派生类中编写方法覆盖,这样您就不需要明确地检查哪个类是什么。

答案 1 :(得分:2)

您可以说if( animal instanceof Carnivore )以确定它是食肉动物还是其后代,并且您可以使用if( animal.getClass() == Carnivore.class )来确定它是否是食肉动物而不是其后代。

但是,您需要执行此类检查通常意味着您的设计存在缺陷,缺少可覆盖的方法或类似的东西。

答案 2 :(得分:1)

Java有一个instanceof运算符。但是,这种类型的东西可能与面向对象的设计背道而驰。

答案 3 :(得分:0)

您可以使用instanceof运算符

答案 4 :(得分:0)

查看instanceof运算符

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

请注意,虽然很多人认为使用它可能会被视为危险,但它们甚至可以与GOTO进行比较,但它并不错in some cases。你可以使用它,但不是经常使用它。

答案 5 :(得分:0)

objInstance instanceof Carnivore。这里objInstance是你想要测试的对象。