私はこれは罰金コンパイルされますが、私はそれを使用しようとすると、これらのジェネリックパラメータで構造タイプを使用するにはどうすればよいですか?
type HasApply1 {
def apply[A, R](argument: A): R
}
の両方のコンパニオンオブジェクトに一致する構造型を定義したい2ケースクラス
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 [A](caseClass:HasApply1、a:A)= caseClass.apply(a) ' – shinyhappydan