問題タブ [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.
java - ジグソー/JPMSを投影する理由
Java のパッケージ管理システムは、私にとって常にシンプルで効果的なものに思えました。JDK自体によって頻繁に使用されます。名前空間とモジュールの概念を模倣するためにこれを使用してきました。
Project Jigsaw (別名Java Platform Module System )は何を入力しようとしていますか?
公式サイトより:
このプロジェクトの目標は、Java SE プラットフォームの標準モジュール システムを設計および実装し、そのシステムをプラットフォーム自体および JDK に適用することです。
java - JDK9 を使用した Eclipse Indigo
私はかなり古い Eclipse でopenJdk9 リポジトリから最新の Java を試したかったのです。ダウンロード、ビルド、およびインストールしましたが、すべて正常に機能しました。次に、それを Eclipse のデフォルトの JVM として設定しました。すべてが再コンパイルされましたが、Java の基本クラスjava.lang.CharSequence
が見つからないため、エラーが発生しました。
ビルド パスは正常に見えますrt.jar
。
Eclipse Indigo が JDK9 を使用するのを妨げているものはありますか? Java の新機能を調査しようとしているわけではなく、最新バージョンを使用してパフォーマンスを測定したかっただけです。
java - Nashorn のトラブルシューティング「メソッド コードが大きすぎます!」例外
実行中jjs
またはScriptEngine#eval
JavaScript ( https://gist.github.com/also/005fd7c200b20f012e10 ) でクラッシュすると、この例外が発生し、それ以上の詳細はありません:
メソッド コードが大きくなりすぎている原因を特定するにはどうすればよいですか? jjs
( )に対していくつかのログ オプションを試しまし--log=codegen:info
たが、原因を突き止めるものは何も見当たりませんでした。
Java バージョン 1.9.0-ea-b34 および 1.8.0_20-b26 でテストしました。
java - sjavac とは何ですか? 誰が対象で、どのように使用しますか?
OpenJDK メーリング リストで呼び出されたツールについて話題になっています。sjavac
また、関連する 2 つのJEP があります。JEP 139: Enhance javac to Improvement Build SpeedとJEP 199: Smart Java Compilation, Phase Twoです。
私の質問は次のとおりです。
sjavac
ツールとは正確には何ですか?- 誰を対象としていますか?
- どうやって使うの?
免責事項:自問自答。このツールの知識を StackOverflow コミュニティにもたらし、将来の sjavac FAQ への参照を作成したかっただけです。
java - 単一のアンダースコア変数名を使用すると、「リリース 9 以降、'_' はキーワードであり、識別子として使用できない可能性があります」というエラーが表示されるのはなぜですか?
単一のアンダースコア変数名を使用すると、「リリース 9 以降、'_' はキーワードであり、識別子として使用できない可能性があります」というエラーが表示されるのはなぜですか?
これは、Java コードを javac バージョン 8 でコンパイルするときに発生します。
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.
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()
その結果、コードの重複が発生しますが、これは望ましくありません。
したがって、これはリファクタリングで問題を引き起こし、そのようなコードの重複を取り除くために、プライベートなデフォルト メソッドが許可されます。
回答ありがとうございます!
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 フォルダーは、別のフォルダーとしてのみインストールされます。プログラムをコンパイルして実行できるようにするにはどうすればよいですか?