Есть ли способ избежать использования var, когда инициализация переменной происходит внутри метода beforeAll
(т. Е. После создания объекта)?Как избежать использования var с BeforeAll
Я хотел бы благоприятствовать неизменности ...
Есть ли способ избежать использования var, когда инициализация переменной происходит внутри метода beforeAll
(т. Е. После создания объекта)?Как избежать использования var с BeforeAll
Я хотел бы благоприятствовать неизменности ...
Лучший способ для вас случае:
lazy val x: Type = _
override def beforeAll = {
x = //you code
}
Не существует 'lazy var'. –
это не скомпилировано для меня, оно все еще думает, что есть переназначение –
Вы можете использовать внешний объект компаньоном для достижения этой цели, Scala будет убедиться, что есть только один из них:
object SparkContextProvider {
val sparkContext: SparkContext = {
val sc = new SparkContext(conf)
setup(_sc)
sc
}
}
вам тестовый код будет содержать
trait SharedSparkContext extends SparkContextProvider {
val sc = SparkContextProvider.sparkContext
}
Посмотрите на это: http://eugenezhulenev.com/blog/2014/10/18/run-tests-instandstand один-искро-кластер/Кажется, все в порядке, хотя я не знаю, какие последствия могут иметь контексты, инициализированные в конструкторе. – Markon