gpt4 book ai didi

generics - 在方法中使用通用类型的接口(interface)

转载 作者:行者123 更新时间:2023-12-02 13:14:23 33 4
gpt4 key购买 nike

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

interface IStorageManager<out T: IFileItem> {

fun getAllItems(): List<T>

fun addNewItem(itemToAdd: T)

fun deleteItem(itemToDelete: T)

}

screen

最佳答案

如果你的界面只产生 T , 你可以通过注解 out 让编译器明白这一点。 .在您的示例中,您还有充当 T 消费者的方法。 ,因此 out不起作用。只需删除 out关键字,一切都会正常工作。

这是一个很好的引用:
https://kotlinlang.org/docs/reference/generics.html

关于generics - 在方法中使用通用类型的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47251361/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com