問題タブ [java-14]
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 - このスニペットはコンパイルされていますか? 私はそうは思わない Java 14 レコード
週末、私は Java 14 プレビュー機能の記録について読んでいました。Brian Goetz のコードのように思われるため、この質問をしたくありませんでした。私たちは皆、この人物が誰であり、Java エコシステムを代表するものであることを知っています。私のため。
このようなものです。
この行は Score 参照を返していると思います。
それが何をしようとしているのか私が理解する前にあなたはそれを見たことがあるかもしれませんが、私には理解できないことがあります。たぶん私は間違っています。
この行
のAPIcomparingInt
はこんな感じです。
しかし、メソッドリファレンスを理解している限り
Records タプルから Score 参照を返していますか? 整数ではないか、整数になります
または、これによりコードがコンパイルされますが、おそらく入力エラーだと思います。
前に述べたように、私の理解では、このコードはコンパイルされません。たぶん私は間違っています。
java - Java シンボルはシステム設定にありませんが、まだインストールされています
Mac への Java のインストールに関する紛らわしい問題を処理する必要があります。
しかし
java -version
、ターミナルに入力すると、java version "14" 2020-03-17 Java(TM) SE Runtime Environment (build 14+36-1461) Java HotSpot(TM) 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)
そのため、Java はまだインストールされているようです。
私のシステム: macOS High Sierra バージョン 10.13.6
java - JPMS: java.lang.reflect.InaccessibleObjectException に対して --add-opens が機能しない
Jetty 9.4 および Weld-servlet-shaded-3.1 で Java 14 を使用すると、次の例外が発生します。
ここでの回答によると:https://stackoverflow.com/a/41265267/5057736追加しようとしました
と
しかし、誰も助けませんでした。誰かがそれを修正する方法を教えてもらえますか?
EDIT 1
この問題は、Java 12,13,14 OpenJDK/Oracle で発生することがわかりました。ただし、Java 11 OpenJDK/Oralce を使用すると、すべて正常に動作し、何も追加しません--add-opens
。それを説明する方法は?
EDIT 2 Jetty pomとWeld pom
を
チェックしましたが、どちらも同じプロパティを持っています:
編集 3
Java バージョン
アプリケーションを開始
そして、これはスタックトレースです
EDIT 4
溶接が原因で異なる動作が発生することがわかりました。これは ClassFileUtils の一部です。
88 行目でわかるように、ti は JPMS によってブロックされている setAccessible(true) メソッドを呼び出します。最後の質問ですが、そのWeldとJettyが子JPMSレイヤーにあることを考慮して、JPMSの設定でこの問題を解決することは可能でしょうか?