1
は、これらのクラスと変数を考える:サブタイプを安全にキャストできますか?
abstract class Base[T <: Base[_]] {
val self: T
def me(): T = self
}
class Derived extends Base[Derived] {
lazy val self = this
def whoAmI() = "Im derived"
}
val d = new Derived
私は無事d.foo().whoAmI()
を呼び出すことができますがしかし、これはまた、タイプセーフでしょうか?
abstract class Base[T <: Base[_]] {
def me(): T = this.asInstanceOf[T]
}
class Derived extends Base[Derived] {
def whoAmI() = "Im derived"
}
私は他のクラスが派生から延び、キャストが
、おかげで –