【发布时间】:2019-10-01 23:47:18
【问题描述】:
我正在尝试将值(类)传递给另一个类,并且在该类中我将使用带有enumValues<parameter>() 的参数(传递的类)
我尝试过传递通用 MyClass<T>()
而不是enumValues<T>()
但我得到“不能将 T 用作具体化,而是使用类”。
【问题讨论】:
标签: android generics kotlin enums
我正在尝试将值(类)传递给另一个类,并且在该类中我将使用带有enumValues<parameter>() 的参数(传递的类)
我尝试过传递通用 MyClass<T>()
而不是enumValues<T>()
但我得到“不能将 T 用作具体化,而是使用类”。
【问题讨论】:
标签: android generics kotlin enums
根据您使用它的上下文,您可以简单地将方法声明为内联并具体化:
inline fun <reified T : Enum<T>> useEnumValues() {
val values = enumValues<T>()
}
否则,如果您需要类参考:
fun <T : Enum<T>> useEnumSet(enumClass: Class<T>) {
val values = EnumSet.allOf(enumClass)
}
【讨论】:
如果您的Class 值称为cls,则只需调用cls.enumConstants。
【讨论】: