【发布时间】:2021-01-24 08:45:19
【问题描述】:
请解释一下什么是 scala 类型的规则以及为什么应该在这里使用
我有类型层次结构
class A
class B extends A
class C extends A
cladd D extends C
其他类型类
class Hub(init) {
def add(elem): Hub = new Hub(elem)
}
我需要编辑 Hub 和 Hub.add 的输入,它应该像这样工作
val a : Hub[D] = Hub(new D)
val b : Hub[A] = a.add(new B)
val c : Hub[A] = b.add(new C)
val d : Hub[A] = c.add(new D)
这应该是编译错误
val e : Hub[C] = b.add(new C)
我应该如何编辑它以及为什么?
附:这不是有效的 scala 代码,这是为了类型示例
【问题讨论】:
标签: scala generics types typeclass