web-dev-qa-db-ja.com

ScalaコードをJavaコードに自動的に変換する

私はScalaで記述されたアプリを持っていて、チームメンバーの何人かはそれのJavaバージョンを望んでいます。これは、Scalaで作成された別のAPIを使用するデモアプリであり、JavaバージョンのアプリでJavaからAPIを使用できるようにしたいと考えています。ただし、アプリはやや大きく、Javaで手動でreweriteしたくありません(そして、Scalaを学びたくありません)。 JavaコードからScalaコードを自動的に生成(読み取り可能)するツールはありますか?

19
Jus12

JavaアプリのバージョンがJavaからAPIを使用できるようにしたい

ScalaクラスはJavaから使用できます(結局のところすべてがJVMバイトコードであるため))使用するクラスを含むjarをパッケージ化できますか?

10
dhg

scala標準に戻すJava Scalaがかなり低レベルであるため、バイトコード操作。90%は、通常のJavaコードに正確に変換できないいくつかのことを行うと確信しています。

8
JohnnyK

いいえ、そのようなツールはありません。
Scalaはある意味でJavaのコーヒースクリプトです。 coffescriptのすべてのファンキーなクラスが 翻訳済み からjavascriptにどのようになっているのか見てください。同じ*はscalaでも同じです。
Javaに翻訳できない機能はたくさんあるとは思いませんが、ほとんどの機能は非常に雑然としたコードに翻訳されますが、たとえ人間がその仕事をするとしても。

しかし Java to scala translators があります。

*文字通りクラスについて言っていない

5
om-nom-nom

.classファイルをJavaソースファイルに逆コンパイルする必要があります。scalaはさらに多くの.classファイルを生成することに注意してください

sdkまたはjad逆コンパイラに含まれるOracleのjavapを使用できます

詳細な説明については、次の記事をお読みください。

リンクscalaクラスからJavaソース

3
firephil

これが機能するかどうかはわかりませんが、Javaデコンパイラを使用してクラスファイルを実行できます。

それがまったく機能する場合、結果は地獄のように醜くなります。

2
Jens Schauder