我有两个案例类
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 的具体类型,它将正确编译,但是我失去了灵活性