передать класс в качестве параметра классу, чем вызывая enumValues ​​с классом, который передал - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь передать значение (класс) другому классу, и в этом классе я буду использовать параметр (переданный класс) с enumValues<parameter>()

Я попытался передать универсальный MyClass<T>() ичем enumValues<T>(), но я получаю "не могу использовать T как ограниченный, используйте вместо этого класс".

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Если ваше значение Class называется cls, просто наберите cls.enumConstants.

0 голосов
/ 02 октября 2019

В зависимости от контекста, где вы используете это, вы можете просто объявить метод как встроенный и расширенный:

inline fun <reified T : Enum<T>> useEnumValues() {
  val values = enumValues<T>()
}

В противном случае, если вам требуется ссылка на класс:

fun <T : Enum<T>> useEnumSet(enumClass: Class<T>) {
  val values = EnumSet.allOf(enumClass)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...