0
중첩. 제가 만들고자하는 것은 다음과 같은 클래스입니다 :스칼라 내가 두 개의 추상 클래스를 내 스칼라 응용 프로그램에서 매개 변수화 클래스
abstract class AbstractEvaluationContext[E <: Evaluator[D]]
일부 방법이 있습니다.
내 질문은 : 평가자가 평가할 정의 유형에 어떻게 액세스 할 수 있습니까? 예. 수업 :
class SomeEvaluationContext extends AbstractEvaluationContext[SomeEvaluator[SomeDefinition]]
어떻게 AbstractDefinition 유형을 내 AbstractEvaluationContext 클래스에서 얻을 수 있습니까?
예 I는 메소드를 정의하고자 : 리턴 타입
가def getDefinition(): D = ...
평가 파라미터로 전달 정의 될 것이다.
abstract class AbstractEvaluationContext[D <: Definition, E <: Evaluator[D]] {
def getDefinition(): D
}
class SomeEvaluationContext extends
AbstractEvaluationContext[SomeDefinition, SomeEvaluator[SomeDefinition]] {
def getDefinition(): SomeDefinition = ???
}
가 실제로 문제의 코드가 잘못되었습니다
감사합니다,하지만 두 번 통과 정의 유형을 피할 수있는 방법이 없다? [SomeDefinition, SomeEvaluator [SomeDefinition]] 대신 SomeEvaluator 매개 변수로 SomeDefinition이 이미 포함되어 있으므로 [SomeEvaluator [SomeDefinition]]을 작성하는 것이 좋습니다. – gysyky
@gysyky : 아니요, 두 가지 유형 매개 변수를 모두 지정해야합니다. – senia