Как вернуть тип, указанный как подтип определенного класса? - PullRequest
1 голос
/ 20 июня 2019

По сути, у меня есть 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> для типа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...