Generics 在方法中使用接口的泛型类型

Generics 在方法中使用接口的泛型类型,generics,kotlin,Generics,Kotlin,我对Kotlin中的泛型感到困惑。如何在函数参数(addNewItem()和deleteItem()中)中使用T类型的类?我得到错误“类型参数T声明为'out',但出现在'in'位置kotlin” 接口管理器{ fun getAllItems():列表 乐趣添加新项目(项目添加:T) 趣味删除项(itemtodelet:T) } 如果您的接口只生成T,您可以通过使用out对其进行注释来向编译器说明这一点。在您的示例中,还有充当T消费者的方法,因此out不起作用。只需删除out关键字,一切都会正

我对Kotlin中的泛型感到困惑。如何在函数参数(addNewItem()和deleteItem()中)中使用T类型的类?我得到错误“类型参数T声明为'out',但出现在'in'位置kotlin”

接口管理器{
fun getAllItems():列表
乐趣添加新项目(项目添加:T)
趣味删除项(itemtodelet:T)
}

如果您的接口只生成
T
,您可以通过使用
out
对其进行注释来向编译器说明这一点。在您的示例中,还有充当
T
消费者的方法,因此
out
不起作用。只需删除
out
关键字,一切都会正常工作

这是一个很好的参考:

interface IStorageManager<out T: IFileItem> {

fun getAllItems(): List<T>

fun addNewItem(itemToAdd: T)

fun deleteItem(itemToDelete: T)

}