이 작업을 수행 할 수 있습니까?대체 생성자의 고정 유형 매개 변수
final case class C[A] (v: A) {
def this() = this(true)
}
주어진 생성자로 생성 된 C는 자동으로 C [부울]입니다. 이 버전은 컴파일되지 않습니다하지만 어떻게 든 행할 수 있어야처럼 느낌, 다음이 작동하는 것 같다 특히 :
final case class C[A] (v: A = true)
내가 어떤 자바 상호 운용성을 원하는, 그래서 기본값을 피하려고합니다. 필자는 동반 객체에서 factory 메소드를 사용하여이 작업을 수행 할 수 있다고 생각하지만 직접 수행 할 수 있습니까? C는 사례 클래스이므로 팩토리 메서드는 다소 지저분한 IMHO입니다. 컴패니언 객체를 사용하는 것이
object C{
def apply() = C(true)
}
같은 잘못은 무엇
상당히 못생긴 Java 호출 (IMHO) 외에도 케이스 클래스에 대한 그러한 메소드는 연관된 unapply() 메소드도 (패턴 일치를 위해) 정의해야 함을 암시하는 것처럼 보입니다. 표준 스칼라 코드 스타일입니까? – scand1sk
@ scand1sk'apply '를 정의 할 때'unapply'를 정의 할 필요는 없습니다. 케이스 클래스를위한 두 배. – wheaties