ele*_*ect 1 generics extension-methods enums kotlin companion-object
我想.MAX在通用枚举上表示值计数.
我试着玩一点,但我想不出来.
当我写作时,例如,这个:
val Enum.Companion.MAX get() = enumValues().size
它抱怨enumValues()说
类型推断失败:没有足够的信息来推断参数T in
inline fun> enumValues():Array请明确指定它.
这很有道理,然后我也试过了:
val <E> Enum<E>.Companion.MAX get() = enumValues().size
它抱怨第二个 E
引用嵌套类时,外部类的类型参数是多余的
有办法吗?
您必须使用reified类型参数,以便在每个调用站点使用实际的枚举类型:
inline val <reified T : Enum<T>> T.MAX get() = enumValues<T>().size
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |