Scala で作成したアプリがあり、チーム メンバーの何人かがその Java バージョンを必要としています。Scala で書かれた別の API を使用するデモ アプリであり、Java から API を使用できる Java バージョンのアプリが必要です。ただし、アプリはやや大きく、Java で手動で書き直したくありません (また、Scala を学習したくありません)。Scala コードから (読み取り可能な) Java コードを自動的に生成するツールはありますか?
5 に答える
アプリの Java バージョンで Java から API を使用できるようにしたい
Scala クラスは Java から使用できます (最終的にはすべて JVM バイトコードであるため)。彼らが使用できるように、クラスと一緒に jar をパッケージ化できますか?
Scala はかなり低レベルのバイトコード操作を行うため、scala から標準の Java に変換することはできないと思います。私は、彼らが通常の Java コードに正確に変換できないことを行っていることを 90% 確信しています。
いいえ、そのようなツールはありません。
Scala はある意味で Java のコフェスクリプトです。coffescript のファンキーなクラスがすべて JavaScript に変換される様子を見てください。同じ*がscalaの場合です。
Java に変換できない機能がたくさんあるとは思いませんが、ほとんどの機能は、人間がその作業を行ったとしても、非常に雑然としたコードに変換されます。
しかし、java から scala へのトランスレータがあります。
*クラスについて文字通り言っていない
.class ファイルを逆コンパイルして Java ソース ファイルにする必要があります。scala がさらに多くの .class ファイルを生成することに注意してください。
SDKまたはjad逆コンパイラに含まれるoracleのjavapを使用できます
詳細な説明については、次の記事を参照してください。
これが機能するかどうかはわかりませんが、Java 逆コンパイラを介してクラス ファイルを実行できます。
それがまったく機能する場合、結果は地獄のように醜いものになるはずです。