Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala枚举在java中的应用_Scala_Playframework 2.2_Scala Java Interop - Fatal编程技术网

Scala枚举在java中的应用

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:

我有一个这样的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: 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项目中都能正常工作。我建议你问一个新问题,为什么会出现这种情况,因为剧本中显然缺少一些东西。