Scala匹配case语句中的任何枚举值

Scala匹配case语句中的任何枚举值,scala,Scala,我定义了一个scala枚举: object SalesChannelType extends scala.Enumeration { type SalesChannelType = Value val SALES_CHANNEL_1, SALES_CHANNEL_2 = Value } class SalesChannelType extends TypeReference[SalesChannelType.type] 现在,我想编写一个匹配语句,在单个情况下匹配任何枚举值,类似于:

我定义了一个scala枚举:

object SalesChannelType extends scala.Enumeration {
  type SalesChannelType = Value
  val SALES_CHANNEL_1, SALES_CHANNEL_2 = Value
}

class SalesChannelType extends TypeReference[SalesChannelType.type]
现在,我想编写一个匹配语句,在单个情况下匹配任何枚举值,类似于:

SalesChannelType.SALES_CHANNEL_1 match {
    case SalesChannelType => println(_)
    case _ => println("specified sales channel does not exist")

如果在枚举中定义了销售渠道,则第一个案例语句将打印该销售渠道。否则,应调用第二个case语句。目前,上面的代码不会编译,错误是
模式类型与预期类型不兼容,发现SalesChannel.type需要SalesChannel.Value

我认为这就是您要查找的(尽管@Jasper-M的注释是正确的-如果程序的类型正确,这是无用的):


如果你的程序是正统的类型,没有一个不存在的销售渠道可以达到这种模式匹配。还是我遗漏了什么?是的,你说得很好,这是不必要的匹配声明。仍然想知道这是否可能?您可以制作一个。我想您正在寻找与任何枚举值匹配的
案例s:SalesChannelType.Value=>…
-如果您有兴趣阅读更多有关scala枚举的内容:
SalesChannelType.SALES_CHANNEL_1 match {
  case s: SalesChannelType.Value => println(s)
  case _ => println("specified sales channel does not exist")
}