小编Mon*_*chi的帖子

在Kotlin上铸造通用类型

我试图让mapOf()返回EnumMap,如果K是Enum。但是,该错误发生在枚举(K)的第一个类型变量处

码:

@kotlin.internal.InlineOnly
public inline fun <reified K, V> mapOf(): Map<K, V> =
    if (K::class.java.isEnum) EnumMap<K, V>(K::class.java)
    else emptyMap()
Run Code Online (Sandbox Code Playgroud)

错误:

Type argument is not within its bounds.
Expected: Enum<K!>!
Found: K
Run Code Online (Sandbox Code Playgroud)

我也想给除Enum以外的对象,所以reified K: Enum<*>不能解决。

java generics casting kotlin

6
推荐指数
1
解决办法
1720
查看次数

标签 统计

casting ×1

generics ×1

java ×1

kotlin ×1