web-dev-qa-db-ja.com

自動化Java to Scalaソースコード変換?

(はい、私はJavaコードを呼び出すことができることを知っていますが、それは無意味です。Javaコードを削除したいので、保持せずに、それを見て、それを永遠に維持してください!)

JavaソースをScalaソースに変換するユーティリティはありますか?

理論的には、最小限の損失で達成できるはずだと思います。

私はこれを見つけましたが、それはおそらくバグのある/不完全な非アクティブなようです... http://sourceforge.net/projects/Java2scala/

代替案はありますか?

43
Alex R

IntelliJちょっと、ちょっと、これを行います。 Javaソースでプロジェクトを開く必要があります。その後、式、メソッド、またはクラス全体を.scalaファイルにコピー/貼り付けできます。これは、同等のScalaコード。

変換の忠実度は完全ではなく、このため、バルク変換はまだサポートされていません。

IntelliJ および Scala Plugin の最新バージョンを使用することをお勧めします。 Community Editionは無料です。

これとは別に、Paul Phillipsは Scalify プロジェクトを開始して、コードをJavaからScalaに変換する可能性があります(または、あなたの好きな言語)、そしてその過程でそれをさらに改善します!彼はこれでコンセプトを説明します video 。しかし、この努力は行き詰まりました、おそらく、彼はScalaコンパイラと標準ライブラリに直接貢献することに注意を向けたためです。

37
retronym

IntelliJではIDEA「Scalaに変換」と呼ばれるリファクタリングがあります。これはリファクタリングメニューの下にあります(Scalaプラグインをインストールした後)Ctrl + Shift + G。コピー/貼り付けで遊ぶ必要はありません。

Javaファイルが開かれていることを確認してください。scalaまたはその他のファイルの場合、このオプションはありません。

26
Eugene Platonov

次のツールを公開しました: Scalagen 。私もJatranを試しましたが、いくつかのバグと難しい統合に不満を感じていました。 Scalagenは拡張可能で、Mavenプラグインが付属しています。

16

オンラインで使用できます Java to Scala converter これは Scalagen ライブラリを使用します。

8
Luka Zakrajšek

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

(私はこれを使用していません)


これに気づいた、2012年3月: http://blog.mysema.com/2012/03/scalagen-Java-to-scala-conversion.html

6
Gene T

自動的にJava= to Scalaに変換することは不可能だと思います。Javaは存在しないScala(たとえば、フィールドおよび静的メンバー)、Scalaは、Javaに存在しないコンストラクターに制限を課します。 ScalaにはJava(ジェネリックパラメータが指定されていないジェネリック))のような生の型はありません。

2
Erik Engbrecht