Kommentare zu: Java Records (mit Beispielen) https://www.happycoders.eu/de/java/java-records/ Wed, 27 Nov 2024 19:09:57 +0000 hourly 1 Von: Sven Woltmann https://www.happycoders.eu/de/java/java-records/#comment-19090 Mon, 04 Sep 2023 07:35:13 +0000 https://www.happycoders.eu/?p=26216#comment-19090 Als Antwort auf René Kießig.

Hallo René,

vielen Dank für Deine Fragen!

zu 1)

Der kanonische Konstruktor eines Records darf nur dann private sein, wenn der Record selbst auch private ist (genauer gesagt: die Sichtbarkeit des Konstruktors darf nicht restriktiver sein als die Sichtbarkeit des gesamten Records - ich werde diese Information in den Artikel aufnehmen).

Ein Record kann allerdings nur dann private sein, wenn er innerhalb einer anderen Klasse definiert wird. Damit kann a) nur diese Klasse den Record sehen (was vermutlich nicht Deine Intention ist) und b) auch wenn der Konstruktor dann private ist, kann die äußere Klasse ihn aufrufen (was vermutlich ebenfalls nicht Deine Intention ist).

Kurz gesagt: Du kannst den kanonischen Konstruktor nicht verstecken, um den Einsatz der Factory-Methode zu erzwingen.

zu 2)

Ja, Du kannst problemlos die @Builder-Annotation an einen Record schreiben.

Viele Grüße
Sven

]]>
Von: René Kießig https://www.happycoders.eu/de/java/java-records/#comment-19034 Wed, 30 Aug 2023 23:10:25 +0000 https://www.happycoders.eu/?p=26216#comment-19034 Vielen Dank für den wieder tollen Artikel!
An mir waren Records vorbeigegangen, ich bin auf sie durch deinen 2. Artikel über hexagonale Architektur aufmerksam geworden. Ich habe mir gleich einen Refactoring Task angelegt, um Records für Value Objects zu nutzen.

Folgende Fragen blieben mir noch unbeantwortet:
- Kann der kanonische Konstruktor mit private überschrieben werden, wenn ich die Instanziierung über eine Factory Methode forcieren möchte?
- Kann mit Lombok das Builder Pattern drangeneriert werden?

]]>