自动化的Java到Scala源代码转换?

(是的,我知道我可以从Scala调用Java代码,但这是毫无意义的;我想删除Java代码,而不是保留它,不得不看它并永远保持它!)

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

我相信在理论上应该有可能以最小的损失完成。

我发现这个,但它似乎不活动,可能是越野车/不完整的… http://sourceforge.net/projects/java2scala/

任何替代品?

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

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

我build议使用最新版本的IntelliJ和Scala插件 。 社区版是免费的。

除此之外,Paul Phillips曾经开始Scalify项目,将Java代码翻译成Scala(或者可能是你最喜欢的语言 ),甚至在这个过程中改进它! 他在这个video中解释了这个概念。 然而,这种努力是停滞的,大概是因为他把注意力转向直接对Scala编译器和标准库做出贡献。

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

只要确保你有一个Java文件打开,没有这个选项,如果它是一个Scala或其他文件。

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

您可以使用在线Java到Scala转换器 ,它使用Scalagen库。

http://code.google.com/p/jatran/

(我没有用过这个)


注意到这一点,2012年3月: http : //blog.mysema.com/2012/03/scalagen-java-to-scala-conversion.html

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