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