(是的,我知道我可以从Scala调用Java代码;但这没有意义;我想删除Java代码,而不是保留它并且必须查看它并永远维护它!)
是否有任何实用程序可以将Java源代码转换为Scala源代码?
我认为理论上应该可以以最小的损失完成。
我找到了这个,但似乎不活跃,可能是越野车/不完整...... http://sourceforge.net/projects/java2scala/
任何替代方案?
答案 0 :(得分:34)
IntelliJ有点,sorta,这样做。您需要使用Java源打开项目。然后,您可以将表达式,方法或整个类复制/粘贴到.scala文件中。这将转换为等效的Scala代码。
转换的保真度并不完美,因此,它还不支持批量转换。
我建议使用最新版本的IntelliJ和Scala 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)
http://code.google.com/p/jatran/
(我没有用过这个)
注意到这一点,2012年3月:http://blog.mysema.com/2012/03/scalagen-java-to-scala-conversion.html
答案 5 :(得分:2)
我不认为在一般情况下可以自动将Java转换为Scala。 Scala中不存在Java中的许多低级构造(例如字段和静态成员),Scala对Java中不存在的构造函数设置了限制,而Scala没有像Java那样的原始类型(没有Java的原始类型)通用参数指定)。