Как установить границы типа AnyRef, чтобы сделать его только классом случая
Предположим, что у меня есть несколько случаев
case class Foo(i: Int)
case class Bar(s: String)
Я хочу определить некоторые функции, которые принимают A: AnyRef в качестве параметра. Но! Я хочу установить границы с:
- A - AnyRef, но не Объект
- A - AnyRef, но только класс case
что-то вроде того
def caseClassProcessor [A] (A: AnyRef <: некоторые границы) =???
def notObjectProcessor [A] (A: AnyRef! Object) =???
это возможно каким-либо образом?
0 ответов
Возможно, вам нужен этот пример:
case class Foo(int: Int)
case class Bar(string: String)
def foo[A](arg: A) = arg match {
case Foo(int) => ...
case Bar(string) => ...
case _ => ...
}