それを呼び出したのと同じクラスの型を常に返すメソッドを作成する方法はありますか?
説明させてください:
class Shape {
var mName: String = null
def named(name: String): Shape = {
mName = name
this
}
}
class Rectangle extends Shape {
override def named(name: String): Rectangle = {
super.named(name)
this
}
}
named
これは機能しますが、すべてのサブクラスで関数をオーバーライドせずにこれを行う方法はありますか? 私はこのようなものを探しています(これは機能しません):
class Shape {
var mName: String = null
def named(name: String): classOf[this] = { // Does not work but would be great
mName = name
this
}
}
class Rectangle extends Shape {
}
何か案が ?それとも不可能ですか?