Использование универсального типа интерфейса в методе

Я запутался с дженериками в Котлине. Как я могу использовать T-тип класса в параметрах функции (в addNewItem () и deleteItem ())? Я получаю ошибку "Тип параметра T объявлен как 'out', но встречается в позиции 'in' kotlin"

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

экран

Если ваш интерфейс создает только T , вы можете сделать это понятным для компилятора, аннотируя его без out . В вашем примере у вас также есть методы, которые действуют как потребители T , поэтому out не работает. Просто удалите ключевое слово, и все будет работать нормально.

После этого выучите следующее: https://kotlinlang.org/docs/reference/generics.html