タグ付けされた質問 「java-record」

2
レコードのデフォルトコンストラクターを定義する
レコードがあり、それにデフォルトのコンストラクターを追加したい。 public record Record(int recordId) { public Record { } } しかし、それはintparamでコンストラクタを作成しました。 public final class Record extends java.lang.Record { private final int recordId; public Record(int); //other method } レコードに既定のコンストラクターを追加するにはどうすればよいですか?

1
Java Recordパラメータを文書化する方法は?
Java Recordパラメータをどのように文書化するのですか?最終的にコンストラクターのパラメーター、クラスフィールドになるパラメーターについて言及しています。 私は試した: /** * @param name the name of the animal * @param age the age of the animal */ public record Animal(String name, int age) { } しかし、IntelliJ IDEAは@paramsにエラーとしてフラグを立てます。これがどのように機能するかを示すオンラインの例が見つかりませんでした。私が見つけた最も近いディスカッションはhttps://bugs.openjdk.java.net/browse/JDK-8225055です。 私はいくつか見つかったユニット テスト、これは作業しなければならない意味するように思われるJDKでを。おそらくこれはIDEのバグですか? OpenJDK 14 + 36-1461、IDEA 2020.1を使用しています。 念のため、IDEAに対してバグレポートを提出しました。

3
Java 14のレコードと配列
次のコードがあるとします: public static void main(String[] args) { record Foo(int[] ints){} var ints = new int[]{1, 2}; var foo = new Foo(ints); System.out.println(foo); // Foo[ints=[I@6433a2] System.out.println(new Foo(new int[]{1,2}).equals(new Foo(new int[]{1,2}))); // false System.out.println(new Foo(ints).equals(new Foo(ints))); //true System.out.println(foo.equals(foo)); // true } 配列のことを、明らかに、そうですtoString、equals(、代わりに静的メソッドのメソッドが使用されているArrays::equals、Arrays::deepEquals またはArray::toString)。 したがって、Java 14 Records(JEP 359)は配列ではうまく機能しないと思います。それぞれのメソッドはIDEで生成する必要があります(少なくともIntelliJでは、デフォルトで「便利な」メソッドを生成します。つまり、静的メソッドを使用します)でArrays)。 または他の解決策はありますか?

3
ロンボクゲッター/セッターvs Java 14レコード
私はLombokプロジェクトが大好きですが、最近はJava 14の新機能のいくつかを読んで試しています。 新しい機能には、コンストラクター、プライベート最終フィールド、アクセサー、equals / hashCode、getters、toStringメソッドなどの機能がすでに組み込まれているクラスを作成できるようにするrecordキーワードがあります。 今私の質問です:ロンボクの機能に依存する方が良いですか、それともレコード機能を使い始めるべきですか: これを使用する方が良いです: record Person (String name, String surname) {} またはその: @AllArgsConstructor @ToString @EqualsAndHashCode public class GetterSetterExample { @Getter private int name; @Getter private int surname; } 両方のアプローチの長所と短所は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.