問題タブ [java-record]

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 に答える
1154 参照

java - final フィールドのみを持つジェネリック (非データ) クラスに Java 14 レコードを使用する

Stringa (以下の例を参照) または Spring の依存関係などの final フィールドを持つ単純なクラスが与えられた場合、Java 14 レコードを使用してより簡潔にし、Lombok などの注釈プロセッサを削除することをお勧めします。

レコードを記述するJEPによると、「レコードは、そのデータの単純で透過的な所有者であるというセマンティックな主張を行います」。

明らかに、final フィールドのみを持つジェネリック クラスは、そのデータの透過的なホルダーではありません。また、レコードを使用すると、そのfinal変数が公開されますが、これは望ましくない場合があります。ただし、多くの場合、これはおそらく大きな問題ではありません。

したがって、これはこの言語機能の「乱用」と見なすのに「十分」ですか? それとも、他にあまり目立たない欠点はありますか?