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

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

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

类似这样的东西:

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

有办法吗?

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

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

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

本文链接:https://www.f2er.com/2352467.html

大家都在问