gpt4 book ai didi

generics - Kotlin泛型和错误的类型推断

转载 作者:行者123 更新时间:2023-12-02 13:09:31 25 4
gpt4 key购买 nike

考虑一个通用的class Item和继承它的特定class Event:

open class Item<T> {
fun copyFrom(item: T) {
if (this is Event && item is Event) {
owner = item.owner
value = item.value
}
}
}

class Event : Item<Event> {
open var owner = ""
open var value = 0
}

由于类型推断,我们不必将Item强制转换为Event,我们可以直接访问 ownervalue。但是,它说 itemT类型,不能在 Event子句中强制转换为 item is Event。我相信这不应该发生,因为该子句在Java中是正确的?

编辑:

我知道 copyFrom实现应在 Event中完成的事实,但这只是为了演示类型推断问题。

最佳答案

即使您解决了语法问题,也请执行而不是

您正在创建一个通用容器,该容器显式检查是否有单独的子类进入。然后进行向下转换并访问子类中的字段。

这就像一个好的OO设计的绝对对立面。您的基类应该对任何子类都不了解,而对不了解!

关于generics - Kotlin泛型和错误的类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384851/

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