คำถามติดแท็ก java-record

2
กำหนดตัวสร้างเริ่มต้นสำหรับการบันทึก
ฉันมีบันทึกและต้องการเพิ่มตัวสร้างเริ่มต้นให้กับมัน public record Record(int recordId) { public Record{ } } แต่มันสร้างตัวสร้างด้วยพารามิเตอร์ภายใน 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 …

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 …

3
ลอมบอกทะเยอทะยาน / setter vs Java 14 บันทึก
ฉันชอบโครงการลอมบอกแต่ในวันนี้ฉันกำลังอ่านและลองคุณสมบัติใหม่ของ java 14 ภายในความสามารถใหม่นี้มีคีย์เวิร์ดของเรกคอร์ดที่อนุญาตให้สร้างคลาสที่มีฟังก์ชันการทำงานต่อไปนี้แล้ว: คอนสตรัคเตอร์ฟิลด์สุดท้ายส่วนตัว accessors, equals / hashCode, getters, toString ตอนนี้คำถามของฉันคือดีกว่าที่จะพึ่งพาคุณสมบัติของลอมบอกหรือเราควรเริ่มใช้ฟังก์ชั่นบันทึก: ดีกว่าที่จะใช้สิ่งนี้: 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.