問題タブ [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.

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

java - このスニペットはコンパイルされていますか? 私はそうは思わない Java 14 レコード

週末、私は Java 14 プレビュー機能の記録について読んでいました。Brian Goetz のコードのように思われるため、この質問をしたくありませんでした。私たちは皆、この人物が誰であり、Java エコシステムを代表するものであることを知っています。私のため。

リンクはこちら。https://www.infoq.com/articles/java-14-feature-spotlight/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=Java

このようなものです。

この行は Score 参照を返していると思います。

それが何をしようとしているのか私が理解する前にあなたはそれを見たことがあるかもしれませんが、私には理解できないことがあります。たぶん私は間違っています。

この行

のAPIcomparingIntはこんな感じです。

しかし、メソッドリファレンスを理解している限り

Records タプルから Score 参照を返していますか? 整数ではないか、整数になります

または、これによりコードがコンパイルされますが、おそらく入力エラーだと思います。

前に述べたように、私の理解では、このコードはコンパイルされません。たぶん私は間違っています。

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

java - Java シンボルはシステム設定にありませんが、まだインストールされています

Mac への Java のインストールに関する紛らわしい問題を処理する必要があります。

  • システム設定に移動すると、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

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

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 pomWeld pom
を チェックしましたが、どちらも同じプロパティを持っています:

編集 3
Java バージョン

アプリケーションを開始

そして、これはスタックトレースです

EDIT 4
溶接が原因で異なる動作が発生することがわかりました。これは ClassFileUtils の一部です。

88 行目でわかるように、ti は JPMS によってブロックされている setAccessible(true) メソッドを呼び出します。最後の質問ですが、そのWeldとJettyが子JPMSレイヤーにあることを考慮して、JPMSの設定でこの問題を解決することは可能でしょうか?