我可能会以错误的方式接近这个,但我希望有一个像这样的对象:
class MyDataStructure {
def myClone = {
val clone = new MyDataStructure
// do stuff to make clone the same as this
...
clone
}
}
class MyDataStructureExtended(val foo: String) extends MyDataStructure
Run Code Online (Sandbox Code Playgroud)
然后:
val data = MyDataStructureExtended
val dataClone = data.clone
println(dataClone.foo)
Run Code Online (Sandbox Code Playgroud)
所以,问题是dataClone的类型是MyDataStructure,而不是我希望的MyDataStructureExtended.
我想过将类型T添加到超类中,子类可以指定(例如它自己),但这似乎不太有希望.
scala ×1