2つのケースクラスがあります
case class StringCaseClass(argument: String)
case class IntCaseClass(argument: Int)
これらの両方のコンパニオンオブジェクトに一致する構造タイプを定義したい
type HasApply1 {
def apply[A, R](argument: A): R
}
これはうまくコンパイルされますが、私がこのように使用しようとすると
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の具象型に再定義すると、正しくコンパイルされますが、柔軟性が失われます。