Scala-Java互操作:Scala能否以字节码形式发出枚举供Java使用?

Scala-Java互操作:Scala能否以字节码形式发出枚举供Java使用?,java,scala,enums,bytecode,interop,Java,Scala,Enums,Bytecode,Interop,我有一个混合了Java/Scala的项目,它是利用Scala库的JavaGUI代码。有没有办法编写Scala代码,使其在编译时发出Java枚举?到目前为止,我尝试过的方法(密封案例类、扩展枚举)似乎生成了普通类,这使得从Java使用它们比直接枚举更麻烦。Scala目前只支持Java 1.4特性 Java枚举是在Java 1.5中引入的。为什么不能用Java编写enum类?混合源代码(即Java+Scala)项目是完全可行的…事实上,这也是我的结论,我会接受这个答案。Maven对混合项目的支持仍然

我有一个混合了Java/Scala的项目,它是利用Scala库的JavaGUI代码。有没有办法编写Scala代码,使其在编译时发出Java枚举?到目前为止,我尝试过的方法(密封案例类、扩展枚举)似乎生成了普通类,这使得从Java使用它们比直接枚举更麻烦。

Scala目前只支持Java 1.4特性


Java枚举是在Java 1.5中引入的。

为什么不能用Java编写
enum
类?混合源代码(即Java+Scala)项目是完全可行的…

事实上,这也是我的结论,我会接受这个答案。Maven对混合项目的支持仍然非常脆弱。正是出于这个原因,我继续用Java编写枚举。泛型是通过类型擦除实现的,编译后就不再有泛型了。但是Scala支持注释,这些注释在编译成字节码时会保留,这无疑是Java 1.5的一个特性。Java中的泛型也是通过类型擦除实现的。Boris的意思是Scala只支持JVM 1.4特性。字节码上不存在的语言特性是不相关的。当然,界面方面的情况除外。:-)@Daniel,我的理解是JVM字节码自1.0以来一直没有改变。因此,1.4和1.5之间的唯一区别是语言特性。类文件格式被扩展以至少容纳枚举和注释,但它们可能以向后兼容的方式管理它。JSR 202应包含详细信息()