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"
}
我考慮邊緣情況在其他類衍生自擴展和轉換可以炸燬
這非常有意義,謝謝 –