自动Java到Scala源代码转换?

时间:2010-03-20 17:44:57

标签: java scala code-conversion

(是的,我知道我可以从Scala调用Java代码;但这没有意义;我想删除Java代码,而不是保留它并且必须查看它并永远维护它!)

是否有任何实用程序可以将Java源代码转换为Scala源代码?

我认为理论上应该可以以最小的损失完成。

我找到了这个,但似乎不活跃,可能是越野车/不完整...... http://sourceforge.net/projects/java2scala/

任何替代方案?

6 个答案:

答案 0 :(得分:34)

IntelliJ有点,sorta,这样做。您需要使用Java源打开项目。然后,您可以将表达式,方法或整个类复制/粘贴到.scala文件中。这将转换为等效的Scala代码。

转换的保真度并不完美,因此,它还不支持批量转换。

我建议使用最新版本的IntelliJScala Plugin。社区版是免费的。

除此之外,Paul Phillips曾经启动了Scalify项目,将代码从Java转换为Scala(或者,可能是您喜欢的语言),甚至在此过程中进行改进!他在这个video中解释了这个概念。然而,这项工作陷入停滞,可能是因为他将注意力转向直接为Scala编译器和标准库做出贡献。

答案 1 :(得分:25)

在IntelliJ IDEA中,theres是一个名为“Convert to Scala”的重构。它位于Refactor菜单下(安装Scala插件后)Ctrl + Shift + G. 所以你不需要复制/粘贴。

确保您已打开一个java文件,如果它是scala或其他文件,则没有此选项。

答案 2 :(得分:15)

我刚刚发布了以下工具:Scalagen。我也尝试过Jatran,但是对于一些错误和难以集成感到沮丧。 Scalagen是可扩展的,并附带一个Maven插件。

答案 3 :(得分:8)

您可以使用使用Java to Scala converter库的在线Scalagen

答案 4 :(得分:6)

答案 5 :(得分:2)

我不认为在一般情况下可以自动将Java转换为Scala。 Scala中不存在Java中的许多低级构造(例如字段和静态成员),Scala对Java中不存在的构造函数设置了限制,而Scala没有像Java那样的原始类型(没有Java的原始类型)通用参数指定)。