如何在不创建新对象的情况下返回对象类?

时间:2020-05-14 20:31:51

标签: java class inheritance instanceof

我有几个班级的层次结构: 生物-​​>狐狸,羚羊,狼

我想创建一个方法来定义给定对象的类,而又不返回该对象的新实例。

类似这样的东西:

public Organism defineOrganismClass(Organism o) {
        if (o instanceof Antelope) {
            return ...;
        }if (o instanceof Fox) {
            return ...;
        }            //and so on
}

有办法吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以改为返回Class<? extends Organism>,例如Fox.class。这将为您提供类定义,但没有实例。您不需要if语句,只需要return o.getClass()

它当然会问一个问题,然后您想对该类进行处理。也许您想定义一个枚举,例如enum OrganismType { ANTELOPE, FOX },更易于操作。

相关问题