@Data is a convenient shortcut annotation that bundles the features of @ToString, @EqualsAndHashCode, @Getter / @Setter and @RequiredArgsConstructor together: In other words, @Data generates all the boilerplate that is normally associated with simple POJOs (Plain Old Java Objects) and beans: getters for all fields, setters for all non-final fields, and appropriate toString, equals and hashCode implementations that involve the fields of the class, and a constructor that initializes all final fields, as well as all non-final fields with no initializer that have been marked with @NonNull, in order to ensure the field is never null.@Data is like having implicit @Getter, @Setter, @ToString, @EqualsAndHashCode and @RequiredArgsConstructor annotations on the class (except that no constructor will be generated if any explicitly written constructor exists). However, the parameters of these annotations (such as callSuper, includeFieldNames and exclude) cannot be set with @Data. If you need to set non-default values for any of these parameters, just add those annotations explicitly; @Data is smart enough to defer to those annotations.All generated getters and setters will be public. To override the access level, annotate the field or class with an explicit @Setter and/or @Getter annotation. You can also use this annotation (by combining it with AccessLevel.NONE) to suppress generating a getter and/or setter altogether.Tất cả các trường được đánh dấu như thoáng qua sẽ không được xem xét cho hashCode và bằng. Tất cả các trường tĩnh sẽ bị bỏ qua hoàn toàn (không được coi là cho bất kỳ của những phương pháp được tạo ra, và không có setter/getter sẽ được thực hiện cho họ).Nếu các lớp học đã có một phương pháp với cùng tên và tham số đếm bất kỳ phương thức nào thường được tạo ra, phương pháp đó không được tạo ra, và không có cảnh báo hay lỗi được phát ra. Ví dụ, nếu bạn đã có một phương pháp với 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 vì có các loại khác nhau tham số. Các quy tắc tương tự áp dụng cho các nhà xây dựng (bất kỳ nhà xây dựng rõ ràng sẽ ngăn @Data tạo ra một), cũng như toString, bằng, và tất cả getters và setters. Bạn có thể đánh dấu bất kỳ nhà xây dựng hoặc các phương pháp với @lombok.experimental.Tolerate để ẩn chúng từ lombok.@Data có thể xử lý chỉ phạt generics tham số cho các lĩnh vực. Để giảm boilerplate khi xây dựng các đối tượng cho các lớp học với generics, bạn có thể sử dụng tham số staticConstructor để tạo ra một nhà xây dựng riêng, cũng như một phương pháp tĩnh mà trả về một trường hợp mới. Bằng cách này, javac sẽ suy ra tên biến. Vì vậy, bằng cách tuyên bố như vậy: @Data(staticConstructor="of") lớp Foo {riêng T x;} bạn có thể tạo ra các phiên bản mới của Foo bằng cách viết: Foo.of(5); thay vì phải viết: new Foo(5);
đang được dịch, vui lòng đợi..
