@Data Là một phím tắt chú thích rằng bó các tính năng của @ToString, @EqualsAndHashCode, @Getter / @Setter và @RequiredArgsConstructor với nhau: Nói cách khác, @Data tạo ra tất cả các bản mẫu mà thường được kết hợp với các POJO đơn giản (Plain Old Java Objects ) và đậu: thu khí cho tất cả các lĩnh vực, setters cho tất cả các lĩnh vực phi chính thức, và toString thích hợp, bằng và triển khai hashCode có liên quan đến các lĩnh vực của lớp, và một nhà xây dựng mà khởi tạo tất cả các lĩnh vực chính thức, cũng như tất cả các lĩnh vực phi chính thức không có khởi tạo đã được đánh dấu với @NonNull, để đảm bảo lĩnh vực này là không bao giờ null.
@Data là giống như có @Getter ngầm, @Setter, @ToString, @EqualsAndHashCode và @RequiredArgsConstructor chú thích trên lớp (ngoại trừ việc không có constructor sẽ được tạo ra nếu bất kỳ nhà xây dựng bằng văn bản rõ ràng tồn tại). Tuy nhiên, các thông số của các chú thích (như callSuper, includeFieldNames và không bao gồm) không thể được thiết lập với @Data. Nếu bạn cần phải thiết lập các giá trị mặc định không cho bất kỳ các thông số, chỉ cần thêm những chú thích một cách rõ ràng; @Data Là đủ thông minh để trì hoãn việc cho những chú thích.
Tất cả các thu khí được tạo ra và setters sẽ được công khai. Để ghi đè lên các cấp độ truy cập, chú thích các trường hoặc lớp học với một @Setter rõ ràng và / hoặc chú thích @Getter. Bạn cũng có thể sử dụng chú thích này (bằng cách kết hợp nó với AccessLevel.NONE) để ngăn chặn việc tạo ra một phương thức getter và / hoặc setter hoàn toàn.
Tất cả các trường có đánh dấu thoáng qua sẽ không được xem xét hashCode và bình đẳng. Tất cả các lĩnh vực tĩnh sẽ được bỏ qua hoàn toàn (không xem xét bất kỳ phương pháp tạo ra, và không có setter / getter sẽ được thực hiện cho họ).
Nếu lớp đã có một phương thức có cùng tên và số lượng tham số như bất kỳ phương pháp bình thường có thể tạo ra, phương pháp mà không được tạo ra, và không có cảnh báo hoặc lỗi được phát ra. Ví dụ, nếu bạn đã có một phương pháp có chữ ký bằng (AnyType param), không có bằng phương pháp sẽ được tạo ra, mặc dù về mặt kỹ thuật nó có thể là một phương pháp hoàn toàn khác nhau do có loại thông số khác nhau. Các quy tắc tương tự áp dụng cho các nhà xây dựng (constructor nào rõ ràng sẽ ngăn @Data từ tạo một), cũng như toString, bằng, và tất cả các getter và setter. Bạn có thể đánh dấu bất kỳ xây dựng hoặc phương pháp với @ lombok.experimental.Tolerate để ẩn chúng từ Lombok.
@Data Có thể xử lý các thông số thuốc generic cho ruộng tốt. Để giảm soạn khi xây dựng các đối tượng cho các lớp học với thuốc gốc, bạn có thể sử dụng tham số staticConstructor để tạo ra một nhà xây dựng tư nhân, cũng như một phương pháp tĩnh mà trả về một thể hiện mới. Bằng cách này, javac sẽ suy ra tên biến. Như vậy, bằng cách tuyên bố như vậy: @Data (staticConstructor = "của") lớp Foo{Private T x;} bạn có thể tạo ra các trường hợp mới của Foo bằng cách viết: Foo.of (5); thay vì phải viết: Foo mới(5);
đang được dịch, vui lòng đợi..
