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

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

interface IStorageManager<out T: IFileItem> { fun getAllItems(): List<T> fun addNewItem(itemToAdd: T) fun deleteItem(itemToDelete: T) } 

屏幕

如果你的接口只产生T ,你可以通过注释来告诉编译器。 在你的例子中,你也有作为T消费者的方法,因此不起作用。 只要删除out关键字,一切都会正常工作。

之后,通过心得知以下内容:) https://kotlinlang.org/docs/reference/generics.html