7
呼び出された同じクラスの型を常に返すメソッドを作る方法はありますか?これはScalaの型
私に説明してみましょう:
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 {
}
任意のアイデア?それとも不可能なのでしょうか?
シングルトンタイプは 'this'以外のインスタンスには使用できないことに言及することは重要です。 – pedrofurla
@pderofurla:パス依存型では可能であるはずですが、Scalaではパス依存型についてはほとんど分かりませんが、まだ実験中であるかどうかはわかりません。 –
パス依存型とはまったく関係ないと思います。パス依存型は実験的ではありません。 – pedrofurla