내가이 잘 컴파일이일반 매개 변수와 함께 구조 유형을 사용하려면 어떻게해야합니까?
type HasApply1 {
def apply[A, R](argument: A): R
}
모두의 동반자 개체와 일치하는 구조 유형을 정의 할 수 있지만,이 개 경우 클래스
case class StringCaseClass(argument: String)
case class IntCaseClass(argument: Int)
이 나는 그것을 사용하려고하면 이
def method(caseClass: HasApply1) {
// whatever
}
method(StringCaseClass)
처럼 컴파일러 오류가 발생합니다
found : StringCaseClass.type
required: WithApply1
(which expands to) AnyRef{def apply[A, R](string: A): R}
이 작업을 수행 할 수있는 방법이 있습니까? 구조 유형을 A 및 R에 대한 구체적인 유형을 재정의하면 올바르게 컴파일되지만 유연성이 손실됩니다.
, 나는 이와 같은 방법을 만들고 싶습니다,이 경우 클래스 동반자 당신은 단순히이 작업을 수행 할 수 있도록 이미는 해당
FunctionN
특성을 구현합니다입니다 방법 A [caseClass : HasApply1, a : A] = caseClass.apply (a)' – shinyhappydan