当变量的初始化发生在beforeAll
方法中时(即在对象实例化之后),有没有办法避免使用var?
我想支持不变性......
答案 0 :(得分:0)
最适合您的方法是:
lazy val x: Type = _
override def beforeAll = {
x = //you code
}
答案 1 :(得分:0)
你可以使用外部伴侣对象来实现这一点,scala将确保只有其中一个:
object SparkContextProvider {
val sparkContext: SparkContext = {
val sc = new SparkContext(conf)
setup(_sc)
sc
}
}
你测试代码会有
trait SharedSparkContext extends SparkContextProvider {
val sc = SparkContextProvider.sparkContext
}