실례 합니다만 스칼라를 처음 사용합니다. 나는 추상 클래스와 추상 클래스에서 상속하고 해당 필드를 구현하는 구체적인 클래스를 가졌다.생성자 매개 변수에 대한 제약
abstract class Element {
var name: String
var description: String
}
class ConcreteElement (var name: String, var description: String)extends Element
이게 맞습니까? 예? 추상 클래스 Element에서 상속받은 많은 클래스가 있습니다. 이제 특정 제약 조건에 따라 이름을 인스턴스화하려는 변수 이름을 확인하고 싶습니다. 이 컨트롤은 어디에 두어야합니까? 분명히 추상 클래스 Element.
스칼라 변수 선언 VAR (X)으로: T로 정의 게터 함수 x 및 세터 함수 X_ = 선언 동등 다음과
def x: T
def x_= (y: T): Unit
그래서 I이 방법에서 변수를 선언 결정 getter 메서드 이름에 내 제약 조건이 있습니다.
abstract class Element {
def name: String
def name_= (y: String): Unit = {CONSTRAINT}
var description: String
}
클래스 ConcreteElement (VAR 이름 : 문자열, VAR 설명 : 문자열) 요소
이 추론이 정확 확장? ConcreteElement는 실제로 Element? 필드를 구현합니다.
상황에 따라 가변적 인 필드 (바)가 필요한가요? –
일부 필드는 유형이 Set (something) 인 String 유형입니다. var을 사용할 필요가 없다고 생각합니다. 하지만 var를 사용하지 않으면 어떻게 setter에 제약 조건을 설정할 수 있습니까? – user1826663