問題タブ [jsr335]

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.

0 投票する
2 に答える
660 参照

java - JVM で JSR-335 の特別なサポートはありますか? 機能的な JVM ベースの言語を後押ししますか?

JSR-335 は、Java 8 とともにまもなく登場すると言われています。これにより、クロージャーと仮想拡張メソッドがサポートされます。JVMレベルでこれに対する特定のサポートがあるのだろうか? もしそうなら、クロージャと拡張メソッドのような機能 (scala のトレイトや暗黙関数など) を提供する JVM ベースの関数型言語の速度向上を期待できますか?

編集: Brian Goetz によるJava 8 に関するこの oracle プレゼンテーションを読むと、次のように見えます: - クロージャは必要ありません - 仮想拡張メソッドは特定の JVM サポートを必要とします。

これは、scala では、暗黙の要素とトレイトの一部をより効率的に再実装できることを意味するのでしょうか?

0 投票する
1 に答える
615 参照

java - Javaラムダ(JSR 335):「バインドされていない内部クラスのコンストラクター参照のサポートを排除する」のはなぜですか?

現在の JSR 335 ドラフトでは、0.6.0の変更ログエントリで、「バインドされていない内部クラス コンストラクター参照のサポートが削除された」と言及されています。

説明のために、 という名前の外部クラスと という名前Aの内部クラスがあり、を受け取って新しいインスタンスを作成Bする関数が必要だとします。AB

0.6.0 より前では、コンストラクタ参照構文を使用して同じことを行うこともできます ( State of the Lambdaにも記載されています)。

前述のとおり、この構文は 0.6.0 ではサポートされなくなりました。その理由を知りたいです。

lambda-spec-expertsおよびメーリング リストのアーカイブを調べましたが、lambda-devそれに関する情報は見つかりませんでした。

0 投票する
2 に答える
27499 参照

java - Java 8 インターフェイス メソッドで「同期」が許可されない理由は何ですか?

Java 8 では、次のように簡単に記述できます。

クラスでも使用できる完全な同期セマンティクスを取得します。synchronizedただし、メソッド宣言で修飾子を使用することはできません。

ここで、 onと onのコントラクトInterface2を確立することを除いて、2 つのインターフェイスは同じように動作すると主張できます。これは、コントラクトよりも少し強力です。もちろん、実装は具体的な実装状態について仮定を行うべきではない、またはそのようなキーワードは単にその重みを引き出すことができないと主張することもできます。method1()method2()Interface1default

質問:

synchronizedJSR-335 専門家グループがインターフェイス メソッドをサポートしないことにした理由は何ですか?