Scala枚举在java中的应用
我有一个这样的scala枚举Scala枚举在java中的应用,scala,playframework-2.2,scala-java-interop,Scala,Playframework 2.2,Scala Java Interop,我有一个这样的scala枚举 object WeekDay extends Enumeration { type WeekDay = Value val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } 如何在Java中使用该类 public WeekDay getWeekDay() { return WeekDay.withName(this.myWeekDay); } 它抛出一个错误: [error] required:
object WeekDay extends Enumeration {
type WeekDay = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
如何在Java中使用该类
public WeekDay getWeekDay() {
return WeekDay.withName(this.myWeekDay);
}
它抛出一个错误:
[error] required: WeekDay
[error] found: Enumeration.Value
正如错误告诉您的,Scala成员的类型实际上是
Value
。因此:
import scala.Enumeration.Value;
//...
public Value getWeekDay() {
return WeekDay.withName(this.myWeekDay);
}
不幸的是,您不能使用您的
工作日。工作日在此。它不起作用。我在import语句中得到了这个错误。类枚举存在,但它没有伴生对象。@angelokh:对我来说很好。您得到的错误是Scala的典型错误(Java没有“伴生对象”的概念),并且在将导入放入Scala代码时确实会出现。您只需要在Java代码中进行此导入(枚举
位于Scala的标准库中,因此是自动导入的)。谢谢!但我仍然得到了错误。MyInfo.java:15:对象枚举不是包scala的成员注意:存在类枚举,但它没有伴生对象。这是java代码。我的播放版本是2.2,所以scala版本是2.10.2。@angelokh:还有一件事——出于好奇,我决定自己试试,但我也遇到了同样的错误。但是,如果同时将Java和Scala文件放入一个包(例如blah
)和相应的包文件夹(例如app/blah
)中,则编译器在Scala和Java项目中都能正常工作。我建议你问一个新问题,为什么会出现这种情况,因为剧本中显然缺少一些东西。