[英]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.