問題タブ [scala-java-interop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - scala クラスのプロパティの可視性
クラスのコンストラクターで次の方法でプロパティを定義しました。
Java コードからメッセージ値にアクセスしようとすると、可視性エラーが発生します。なんで?
java - Scala クロージャーと Java 8 クロージャーの互換性
いくつかの OpenJDK メーリングリスト エントリを読んだ後、Oracle の開発者は現在、クロージャの提案からさらに削除しているようです。これは、Java 言語の初期の設計ミスにより、Java クロージャの導入が複雑になっているためです。
Scala クロージャーが Java 8 で計画されているクロージャーよりもはるかに強力であることを考えると、たとえば、Scala からクロージャーを取得する Java メソッドを呼び出したり、Java でクロージャーを定義してそれを Scala 関数に渡したりすることが可能になるのでしょうか?
では、Java クロージャはバイトコードで Scala の対応するものと同じように表現されるのでしょうか、それとも別の方法で表現されるのでしょうか? Java/Scala クロージャー間の機能のギャップを埋めることは可能でしょうか?
java - JavaからScalaシングルトンメソッドをどのように呼び出しますか?
既存のJavaアプリにScalaコードを挿入しようとしています。(だから、言われているように、私はもう少し楽しみたいです)。
Scalaでシングルトンのものを作成します
さて、OldJava.java内
?
JavaがshowMyPowerメソッドを呼び出すようにするには、何を入力する必要がありますか?org.fun.ScalaPower.showMyPower(10)
私は両方を試しまし org.fun.ScalaPower.getInstance().showMyPower(10)
たが、うまくいきませんでした。
(Jadを使用してクラスファイルを逆コンパイルすると、意味のないコードしか表示されません。)
編集
私は宣言を削除しclass ScalaPower
、scalaは期待どおりに静的メソッドを生成します。(ただ動作するように呼び出しますorg.fun.ScalaPower.showMyPower(10)
)。
それがscalaコンパイラのバグかどうか疑問に思う
java - JavaでScala定数を使用する
私は現在、将来のプロジェクトのためにScalaを評価していますが、何か奇妙なことに遭遇しました。JSPで次の定数を作成しました。
そして、それは機能しませんでした。いくつかの実験の後、私はそれの底に到達するために逆コンパイルすることにしました:
今それは面白いです!個人的には、インスペクターが異なる名前空間に存在するため、なぜインスペクターがプレフィックスgetを必要とし、ミューテーターがJavaでプレフィックスセットを必要とするのか疑問に思っていました。
ただし、それをチームの他のメンバーに説明するのはまだ厄介かもしれません。それで、検査官なしで公の定数を持つことは可能ですか?
java - JavaからScalaへの移行
既存のJavaコードベースをScalaに段階的に移行する場合、知っておくべき最も重要なポイントと回避策は何ですか?両方の言語が使用されている(潜在的に非常に長い)中間フェーズ。
私が考えていることの種類は次のとおりです。
- さまざまなコレクション階層
- Scalaがうまく処理できないJavaコンストラクト
- Javaでの使用が実用的でないScalaコンストラクト
- ビルドツール
- コンパイル順序
- フレームワークでの不変性のサポート
- 等
scala - Scala の追加の引数なしコンストラクターとデフォルトのコンストラクター パラメーター
コンストラクターで Scala 2.8 のデフォルト パラメーターを使用していますが、Java 互換性の理由から、デフォルト パラメーターを使用する引数なしのコンストラクターが必要でした。
これは非常に賢明な理由で機能しません。
足りないものがあるかどうか疑問に思っています。パラメータのデフォルトを複製する必要がないという考えはありますか?
ありがとう!
scala - Scala から保護された静的 Java メソッドを呼び出す
ここには、いくつかの Java クラスを含むライブラリがあります。1 つのクラスにはいくつかのprotected static
メソッドがありますが、これは OOP のようなものではありませんが、そのコードを変更することはできません。前述の Java クラスをサブクラス化する Scala クラスがあると仮定すると、その保護された静的メンバーを呼び出すにはどうすればよいでしょうか?
java - Scala オートボクシングと Java Map
type の引数を取る Java メソッドがありますMap<Long, Foo>
。Scala 2.8.1 でそのメソッドの単体テストを作成し、リテラルを渡そうとしていMap[Long, Foo]
ます。
私のコードは次のようになります。
コンパイラは私に次のエラーを与えています:
私もそれを試しました
と
エラーが発生しました:
どうすればいいですか?
java - .java クラスと .scala クラスの間に循環依存関係を持つことは可能ですか?
クラス A が .java ファイルで定義され、クラス B が .scala ファイルで定義されているとします。
クラスAはクラスBを使用し、クラスBはクラスA
を使用します。Javaコンパイラを使用すると、クラスBがまだコンパイルされていないため、コンパイルエラーが発生します。scala コンパイラを使用すると、クラス A が見つかりません。両方を一緒にコンパイルできるコンパイラはありますか?
api - OptionのorNullメソッドの使用について説明してください
ScalaのOptionクラスにはorNull
メソッドがあり、そのシグネチャを以下に示します。
私は暗黙のことで当惑しています。誰かがそれがどのように使われることができるか、理想的には例を挙げて説明してもらえますか?