44

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

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

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

我发现了这个,但它似乎不活跃,可能有问题/不完整...... http://sourceforge.net/projects/java2scala/

有什么选择吗?

4

6 回答 6

39

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

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

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

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

于 2010-03-20T18:11:12.957 回答
27

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

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

于 2011-03-30T16:31:47.810 回答
16

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

于 2012-01-06T14:56:45.443 回答
9

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

于 2013-09-27T15:31:24.947 回答
6

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

(这个我没用过)


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

于 2010-10-04T05:17:39.223 回答
2

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

于 2010-03-20T18:39:55.933 回答