首页 > 解决方案 > 如何返回指定为特定类的子类型的类型?

问题描述

本质上,我有一个枚举,我想返回一个对应于该枚举值的类的实例。所有这些实例都是特定类的子类。我将展示一个示例:

public Trait returnTrait(EnumX enum)
{
    switch (enum)
    {
        case EnumX.TRAITSUBCLASS1:
        {
            return new TraitSubClass1();
        }
        case EnumX.TRAITSUBCLASS2():
        {
            return new TraitSubClass2();
        }
    }
}

但是,当我使用上面的代码时,返回被转换为纯粹的 Trait,并且特定于其类型的方法不可用,只有来自 Trait 的方法可用。我怎样才能使这个方法的返回类型只是扩展 Trait 的类?会是那种Class<? extends Trait>类型的东西吗?

标签: java

解决方案


推荐阅读