简体   繁体   English

在Java切换案例中使用Scala枚举

[英]Using a Scala enum in a Java switch-case

I have a scala enum: 我有一个scala枚举:

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

Now I want to use these enum in a java class: 现在,我想在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;
  }
}

How do I use scala enums in java switch case without any error? 如何在Java切换大小写中使用Scala枚举,而不会出现任何错误?

The answer is simple: you can't. 答案很简单:您不能。 You can only use a few things in Java switch , Scala Enumeration s don't compile to any of them. 您只能在Java switch使用一些东西,Scala Enumeration不能编译为任何东西。

Unfortunately, best practice for interoperability is simply to write enums in Java even in a Scala project. 不幸的是,互操作性的最佳实践是即使在Scala项目中也只是用Java编写枚举。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM