問題タブ [java-9]

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 投票する
5 に答える
21042 参照

java - ジグソー/JPMSを投影する理由

Java のパッケージ管理システムは、私にとって常にシンプルで効果的なものに思えました。JDK自体によって頻繁に使用されます。名前空間とモジュールの概念を模倣するためにこれを使用してきました。

Project Jigsaw (別名Java Platform Module System )は何を入力しようとしていますか?

公式サイトより:

このプロジェクトの目標は、Java SE プラットフォームの標準モジュール システムを設計および実装し、そのシステムをプラットフォーム自体および JDK に適用することです。

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

java - JDK9 を使用した Eclipse Indigo

私はかなり古い Eclipse でopenJdk9 リポジトリから最新の Java を試したかったのです。ダウンロード、ビルド、およびインストールしましたが、すべて正常に機能しました。次に、それを Eclipse のデフォルトの JVM として設定しました。すべてが再コンパイルされましたが、Java の基本クラスjava.lang.CharSequenceが見つからないため、エラーが発生しました。

ビルド パスは正常に見えますrt.jarビルドパス

Eclipse Indigo が JDK9 を使用するのを妨げているものはありますか? Java の新機能を調査しようとしているわけではなく、最新バージョンを使用してパフォーマンスを測定したかっただけです。

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

java - Nashorn のトラブルシューティング「メソッド コードが大きすぎます!」例外

実行中jjsまたはScriptEngine#evalJavaScript ( https://gist.github.com/also/005fd7c200b20f012e10 ) でクラッシュすると、この例外が発生し、それ以上の詳細はありません:

メソッド コードが大きくなりすぎている原因を特定するにはどうすればよいですか? jjs( )に対していくつかのログ オプションを試しまし--log=codegen:infoたが、原因を突き止めるものは何も見当たりませんでした。

Java バージョン 1.9.0-ea-b34 および 1.8.0_20-b26 でテストしました。

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

java - sjavac とは何ですか? 誰が対象で、どのように使用しますか?

OpenJDK メーリング リストで呼び出されたツールについて話題になっています。sjavacまた、関連する 2 つのJEP があります。JEP 139: Enhance javac to Improvement Build SpeedJEP 199: Smart Java Compilation, Phase Twoです。

私の質問は次のとおりです。

  • sjavacツールとは正確には何ですか?
  • 誰を対象としていますか?
  • どうやって使うの?

免責事項:自問自答。このツールの知識を StackOverflow コミュニティにもたらし、将来の sjavac FAQ への参照を作成したかっただけです。

0 投票する
0 に答える
1433 参照

java - 単一のアンダースコア変数名を使用すると、「リリース 9 以降、'_' はキーワードであり、識別子として使用できない可能性があります」というエラーが表示されるのはなぜですか?

単一のアンダースコア変数名を使用すると、「リリース 9 以降、'_' はキーワードであり、識別子として使用できない可能性があります」というエラーが表示されるのはなぜですか?

これは、Java コードを javac バージョン 8 でコンパイルするときに発生します。

0 投票する
6 に答える
77555 参照

java - Optional orElse Optional in Java

I've been working with the new Optional type in Java 8, and I've come across what seems like a common operation that isn't supported functionally: an "orElseOptional"

Consider the following pattern:

There are many forms of this pattern, but it boils down to wanting an "orElse" on an optional that takes a function producing a new optional, called only if the current one does not exist.

It's implementation would look like this:

I'm curious if there's a reason such a method doesn't exist, if I'm just using Optional in an unintended way, and what other ways people have come up with to deal with this case.

I should say that I think that solutions involving custom utility classes/methods aren't elegant because people working with my code won't necessarily know they exist.

Also, if anyone knows, will such a method be included in JDK 9, and where might I propose such a method? This seems like a pretty glaring omission to the API to me.

0 投票する
3 に答える
14091 参照

java - プライベート インターフェイス メソッド、ユースケースの例?

「インターフェイスでのプライベート メソッドのサポートは、ラムダ式のサポートを追加する取り組みの一環として、Java SE 8 に含めることを一時的に検討していましたが、Java SE 8 のより優先度の高いタスクにより集中できるようにするために撤回されました。現在、それが提案されています。プライベート インターフェイス メソッドのサポートが行われるため、インターフェイスの非抽象メソッドがそれらの間でコードを共有できるようになります。」

http://openjdk.java.net/jeps/213の仕様 と、バグレポートhttps://bugs.openjdk.java.net/browse/JDK-8071453に記載されています。

しかし、上記の簡単な説明があっても、これが必要なユースケースは本当に思いつきません。コードに関して「プライベート インターフェイス メソッド」が役立つ例を教えてください。

編集:したがって、答えは、デフォルトの実装がJava 8のインターフェースにどのように追加されたかにより、デフォルトの実装が同じコードベースを使用しているインスタンスが存在する可能性があるということです。

例えば、

ばかげた例、私は知っています。initializeMyClass(MyClass, Params)しかし、両方の方法で使用したいとしましょう。ただし、このようにすると (デフォルトの方法)、initializeMyClass(MyClass, Params)パブリック インターフェイスの一部になります! それを防ぐために、デフォルトのメソッドinitializeMyClass(MyClass, Params)内にコード全体を保持することしかできません。createMyClass()その結果、コードの重複が発生しますが、これは望ましくありません。

したがって、これはリファクタリングで問題を引き起こし、そのようなコードの重複を取り除くために、プライベートなデフォルト メソッドが許可されます。

回答ありがとうございます!

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

netbeans - Netbeans - jdk 1.9.0 ビルド b53 をインストールできません

NetBeans 8 で使用する jdk 1.9.0 初期リリース パッケージをインストールしようとしています。jdk がプライベート jre なしでインストールされていることに気付きました (jdk1.9.0 フォルダー内に jre フォルダーはありません)。また、Netbeans は機能しません。Java Platform Manager の [クラス] タブで jdk1.9 フィールドを選択した後、プラットフォームのクラスパスが含まれていません。下の図を参照してください。

ここに画像の説明を入力

jre1.9.0 フォルダーは、別のフォルダーとしてのみインストールされます。プログラムをコンパイルして実行できるようにするにはどうすればよいですか?