我有类似树状结构的东西。 我有一个特征T.和两个类(A和B)扩展T。
A类似于从B创建新实例的根节点,而B本身可以从B创建新实例。
在trait T中,我定义了一个用于保存某些特定值的案例类C以及一个包含C的所有实例的List [C](让我们称之为listC以保持简单)。
每个B都知道它的父母。我想要做的是listC = parent.listC。但是这不起作用,因为listC期望typ List [C]但得到List [parent.C]。
我该如何解决这个问题?
此外,我尝试了一些解决方案,但没有效果/不可能:
答案 0 :(得分:1)
如果您希望C
的不同子类中的T
类型为同一类型,则无法在T
中将类型定义为路径相关类型。
Tuple2[A.D, A.E]
与Tuple2[B.D, B.E]
不同,这是完全相同的问题。
但是如果一个元组可以工作,那么你应该能够在C
的伴随对象中定义T
案例类,例如使用元组。
执行此操作的一种方法可能是对嵌套类型的限制,并在C
/ Tuples