自动将Scala代码转换为Java代码

时间:2012-03-26 22:28:25

标签: java scala scala-java-interop code-translation

我有一个用Scala编写的应用程序,我的一些团队成员想要它的Java版本。它是一个演示应用程序,使用另一个用Scala编写的API,他们希望Java版本的应用程序能够使用Java中的API。但是,应用程序有点大,我不想手动重新使用Java(他们不想学习Scala)。是否有任何工具可以从Scala代码自动生成(可读)Java代码?

5 个答案:

答案 0 :(得分:10)

  

他们希望Java版本的应用程序能够使用Java中的API

Scala类可以从Java中使用(因为它最终都是JVM字节码)。你可以用你的类包装一个罐子供它们使用吗?

答案 1 :(得分:8)

我认为从scala转换回标准java是不可能的,因为Scala做了一些相当低级别的字节码操作。我90%肯定他们做了一些不能完全转换回普通Java代码的东西。

答案 2 :(得分:5)

不,没有这样的工具 Scala在某种意义上是Java的coffescript。 看看coffescript中所有那些时髦的类都是translated到javascript。与scala相同的* 我不认为有很多功能无法以任何方式转换为Java,但大多数功能都将转换为极其混乱的代码,即使人类会这样做。

但是有java to scala translators

*没有直接说关于类

答案 3 :(得分:3)

您必须将.class文件反编译为java源文件,请注意scala会生成更多.class文件

您可以使用sdk或jad反编译器中包含的oracle的javap

详细解释阅读以下文章:

Link scala class to java source

答案 4 :(得分:2)

不确定这是否可行,但您可以通过java反编译器运行类文件。

如果它起作用,那么结果肯定是丑陋的。