ฉันต้องการใช้คลาสข้อมูลในลอมบอก เนื่องจากมันมีเขตข้อมูลประมาณหนึ่งโหลฉันจึงใส่คำอธิบายประกอบไว้ด้วย@Data
เพื่อสร้างตัวตั้งค่าและตัวรับทั้งหมด อย่างไรก็ตามมีเขตข้อมูลพิเศษหนึ่งฟิลด์ที่ฉันไม่ต้องการให้ผู้เข้าถึงดำเนินการ
ลอมบ็อกละเว้นฟิลด์นี้อย่างไร
ฉันต้องการใช้คลาสข้อมูลในลอมบอก เนื่องจากมันมีเขตข้อมูลประมาณหนึ่งโหลฉันจึงใส่คำอธิบายประกอบไว้ด้วย@Data
เพื่อสร้างตัวตั้งค่าและตัวรับทั้งหมด อย่างไรก็ตามมีเขตข้อมูลพิเศษหนึ่งฟิลด์ที่ฉันไม่ต้องการให้ผู้เข้าถึงดำเนินการ
ลอมบ็อกละเว้นฟิลด์นี้อย่างไร
คำตอบ:
คุณสามารถส่งระดับการเข้าถึงไปที่@Getter
และ@Setter
คำอธิบายประกอบ สิ่งนี้มีประโยชน์ในการทำให้ getters หรือ setters ป้องกันหรือเป็นส่วนตัว นอกจากนี้ยังสามารถใช้เพื่อแทนที่ค่าเริ่มต้น
ด้วย@Data
คุณจะสามารถเข้าถึง accessors สาธารณะได้ตามค่าเริ่มต้น ตอนนี้คุณสามารถใช้ระดับการเข้าถึงพิเศษเพื่อตัดการเข้าถึงNONE
อย่างสมบูรณ์เช่นนี้:
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
@Builder
สามารถใส่ฟังก์ชั่นและตัวสร้างรวมทั้งคลาสและเสนอการตั้งค่าคุณลักษณะเหล่านั้นที่เกิดขึ้นในลายเซ็นของฟังก์ชันนั้นเท่านั้น
AccessLevel.NONE
ซึ่งจะได้รับการยกเว้นจากการกล่าวขวัญ
ตามคำอธิบายของ @Dataคุณสามารถใช้:
ตัวรับและตัวสร้างที่สร้างขึ้นทั้งหมดจะเป็นแบบสาธารณะ หากต้องการแทนที่ระดับการเข้าถึงให้ทำหมายเหตุประกอบฟิลด์หรือคลาสด้วยคำอธิบายประกอบ @Setter และ / หรือ @Getter อย่างชัดเจน คุณยังสามารถใช้คำอธิบายประกอบนี้ (โดยรวมกับ AccessLevel.NONE) เพื่อไม่ให้มีการสร้าง getter และ / หรือ setter ทั้งหมด
หากคุณมีสุนัขเซทเทอร์และทะเยอทะยานเป็นส่วนตัวมันจะปรากฏขึ้นในการตรวจสอบ PMD