0

假设我有一些案例类

case class Foo(i: Int)
case class Bar(s: String)

我想定义一些以 A : AnyRef 作为参数的函数。但!我想设置它的边界:

  1. A 是 AnyRef 但不是对象
  2. A 是 AnyRef 但仅限案例类

类似的东西

def caseClassProcessor[A](A: AnyRef <: Some bounds) = ???

def notObjectProcessor[A](A: AnyRef ! Object) = ???

有可能吗?

4

1 回答 1

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 _           => ...
}
于 2020-03-11T08:43:40.060 回答