gpt4 book ai didi

scala类型和继承的误解

转载 作者:行者123 更新时间:2023-12-01 08:40:28 24 4
gpt4 key购买 nike

你能解释一下这个简单的例子中有什么不正确的吗?

class C1 (val id: Int) 

abstract class C2 [T] {
def m1 [T]
}

class C3 [C1] extends C2
{
override
def m1 (obj: C1) {
println (obj.id)
}
}

我得到:值 id 不是类型参数 C1 的成员为什么?

最佳答案

通过编写class C3[C1],您是说C3 接受一个名为C1 的类型参数。因此,在 C3 的类定义中,类名 C1 指的是该类型参数,而不是类 C1

您可能打算写的是 class C3 extends C2[C1](即您将 C1 类作为 C2 的类型参数传递)。

关于scala类型和继承的误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757248/

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