【发布时间】:2017-01-17 16:16:15
【问题描述】:
class InitializationTest {
abstract class Base {
method()
def method(): Unit
}
class Subclass extends Base {
val obj = new Object
override def method(): Unit = {
println(obj) // null
// How to get the Object here?
}
}
@Test
def doTest(): Unit = {
new Subclass()
}
}
根据我的实验,println(obj) 表达式将输出 null。
我的问题是,如果我需要访问method 的Subclass 中的obj。不把obj从val改成var怎么办,不然不行?
谢谢。
【问题讨论】:
-
在不知道以这种方式调用
method的原因的情况下,直接的解决方法是将val声明为lazy
标签: scala subclass base-class