문제

메소드 업데이트 ()와 함께 두 개의 객체 인 Objecta 및 ObjectB가 있습니다.objecta 또는 objectb (그러나 다른 유형도 아니지만 다른 유형)를 허용하는 함수를 작성하고 싶습니다.개념적으로, 이것은 내가하려고하는 것입니다 :

def doSomething[T <: ObjectA | T <: ObjectB](obj: T) = {
    obj.update
}
.

이 문제를 해결할 수있는 다른 방법 (예 : 업데이트 () 방법, 공통 기본 클래스 등의 구조적 타이핑을 해결할 수있는 다른 방법이 있습니다. 그러나 내 질문은 스칼라 에서이 방법을 할 수있는 것입니다.구문은?그리고 이것은 무엇을 불렀습니까?

도움이 되었습니까?

해결책

스칼라에서는 Disjoint Union을 만드는 유형이 있습니다. 기본적으로 다음과 같은 일을 할 것입니다 :

def doSomething(obj: Either[ObjectA, ObjectB]) {
  obj.fold(fa, fb)
}
.

Checkout http://www.scala-lang.org/api./current/scala/eher.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top