Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何播放列表<&书信电报;MyClass>;列出<;T>;?_Kotlin - Fatal编程技术网

Kotlin 如何播放列表<&书信电报;MyClass>;列出<;T>;?

Kotlin 如何播放列表<&书信电报;MyClass>;列出<;T>;?,kotlin,Kotlin,我试图从泛型方法返回一个特定的列表 代码如下: val list: List<Animal> = listOf(Animal(1), Animal(2), Animal(7)) val storage = object : Storage { override fun <T> fetch(clazz: Class<T>): List<T> { if(clazz is Animal::class.java){

我试图从泛型方法返回一个特定的列表

代码如下:

val list: List<Animal> = listOf(Animal(1), Animal(2), Animal(7))

val storage = object : Storage  {
    override fun <T> fetch(clazz: Class<T>): List<T> {
       if(clazz is Animal::class.java){
           return list
       }
        throw RuntimeException()
    }

} 
val list:list=listOf(动物(1)、动物(2)、动物(7))
val存储=对象:存储{
覆盖有趣的获取(clazz:Class):列表{
if(clazz是Animal::class.java){
返回列表
}
抛出RuntimeException()
}
} 
但我有一个例外:

Error:(14, 20) Kotlin: Type mismatch: inferred type is kotlin.collections.List<polar.QueryTest.Animal> but kotlin.collections.List<T> was expected
错误:(14,20)Kotlin:类型不匹配:推断的类型为Kotlin.collections.List,但应为Kotlin.collections.List

如何正确返回列表?

编译器无法找出类型
list
list之间的关系。还请注意,您使用的是可能打算使用简单相等性检查的:

val list: List<Animal> = listOf(Animal(1), Animal(2), Animal(7))

val storage = object : Storage {
    fun <T> fetch(clazz: Class<T>): List<T> {
        if (clazz == Animal::class.java) {
            return list as List<T>
        }
        throw RuntimeException()
    }
}
val list:list=listOf(动物(1)、动物(2)、动物(7))
val存储=对象:存储{
有趣的获取(clazz:Class):列表{
if(clazz==Animal::class.java){
将列表作为列表返回
}
抛出RuntimeException()
}
}
如果未经检查的强制转换警告使您感到不安,您可以使用以下注释将其抑制:
@suppress(“未经检查的强制转换”)