Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
如何从Java传递Scala枚举_Java_Scala - Fatal编程技术网

如何从Java传递Scala枚举

如何从Java传递Scala枚举,java,scala,Java,Scala,我有一个Scala/Java双语言项目,需要从Java传递Scala枚举 object MonthSelection extends Enumeration { type MonthSelection = Value val LastMonth, ThisMonth, NextMonth, CustomMonth = Value } class MyClass { def doDateStuff(monthChosen: MonthSelection) = { //

我有一个Scala/Java双语言项目,需要从Java传递Scala枚举

object MonthSelection extends Enumeration {
   type MonthSelection = Value

   val LastMonth, ThisMonth, NextMonth, CustomMonth = Value
}

class MyClass {

   def doDateStuff(monthChosen: MonthSelection) = {
   // do stuff
   }
}
我如何从Java中调用它?由于似乎无法导入scala.Enumeration.Value,因此出现编译错误

   MyClass myClass = new MyClass();
   myClass.doStuff(MonthSelection.ThisMonth);

如果有疑问,请查看生成的字节码。:)

好的,简单。所有这些枚举都是公共静态方法。我只需要导入scala.Enumeration并直接调用这些方法

$> cat Some.java
import scala.Enumeration;

public class Some {
    public static void main(String args[]) {
        System.out.println("Hello!");
        System.out.println(MonthSelection.CustomMonth());
    }
}

$> javac -cp $SCALA_HOME/lib/scala-library.jar:bin/ -d bin Some.java
$> ls bin
MonthSelection$.class  MonthSelection.class  Some.class
$> java -cp $SCALA_HOME/lib/scala-library.jar:bin Some              
Hello!
CustomMonth
希望这能给你提供更多的想法。:)

$> cat Some.java
import scala.Enumeration;

public class Some {
    public static void main(String args[]) {
        System.out.println("Hello!");
        System.out.println(MonthSelection.CustomMonth());
    }
}

$> javac -cp $SCALA_HOME/lib/scala-library.jar:bin/ -d bin Some.java
$> ls bin
MonthSelection$.class  MonthSelection.class  Some.class
$> java -cp $SCALA_HOME/lib/scala-library.jar:bin Some              
Hello!
CustomMonth