По сути, у меня есть enum, и я хочу вернуть экземпляр класса, соответствующий этому значению enum. Все эти экземпляры являются подклассами определенного класса. Я покажу пример:
public Trait returnTrait(EnumX enum)
{
switch (enum)
{
case EnumX.TRAITSUBCLASS1:
{
return new TraitSubClass1();
}
case EnumX.TRAITSUBCLASS2():
{
return new TraitSubClass2();
}
}
}
Однако, когда я использую приведенный выше код, возвращение приводится как простая черта, а методы, специфичные для его типа, недоступны, доступны только методы из Trait. Как я могу сделать тип возвращаемого значения этого метода просто классами, которые расширяют Trait? Будет ли это что-то вроде Class<? extends Trait>
для типа?