在Java switch-case中使用Scala枚举

时间:2018-04-16 14:54:38

标签: java scala switch-statement

我有一个scala枚举:

object EnumX extends Enumeration {
  type EnumX = Value
  val A = Value("a")
  val B = Value("b")
}

现在我想在java类中使用这些枚举:

fun (String eventType) {
switch (EnumX.withName(eventType)) {
       //Error, Constant value required
       case EnumX.A():
         System.out.println("Event successful");
         break; 
       default: 
         System.out.println("Event unsuccessful"); 
         break;
  }
}

如何在java switch case中使用scala枚举而没有任何错误?

1 个答案:

答案 0 :(得分:0)

答案很简单:你做不到。你只能在Java switch中使用一些东西,Scala Enumeration不会编译到其中任何一个。

不幸的是,互操作性的最佳实践只是在Scala项目中用Java编写枚举。