변수의 초기화가 beforeAll
메서드 내에서 발생하는 경우 (즉, 객체의 인스턴스 생성 후) var를 사용하지 않는 방법이 있습니까?BeforeAll에서 var 사용을 피하는 방법
나는 불변성을 선호하고 싶습니다 ...
변수의 초기화가 beforeAll
메서드 내에서 발생하는 경우 (즉, 객체의 인스턴스 생성 후) var를 사용하지 않는 방법이 있습니까?BeforeAll에서 var 사용을 피하는 방법
나는 불변성을 선호하고 싶습니다 ...
당신이 경우에 가장 좋은 방법은 다음과 같습니다
object SparkContextProvider {
val sparkContext: SparkContext = {
val sc = new SparkContext(conf)
setup(_sc)
sc
}
}
당신에게 :
lazy val x: Type = _
override def beforeAll = {
x = //you code
}
'lazy var'이 없습니다. –
이것은 나를 위해 컴파일되지 않습니다, 그것은 여전히 재 할당이 있다고 생각합니다. –
당신은, 스칼라는 그 중 하나가 있는지 확인합니다 이것을 달성하기 위해 외부 동반자 객체를 사용할 수 있습니다 테스트 코드는 다음에서
trait SharedSparkContext extends SparkContextProvider {
val sc = SparkContextProvider.sparkContext
}
봐있을 것이다 : http://eugenezhulenev.com/blog/2014/10/18/run-tests-in-stand spark-cluster/생성자에서 컨텍스트를 초기화하는 데 어떤 영향이 있을지 모르겠지만 괜찮습니다. – Markon