[英]How can I change the value of the fields for a generated POJO using Lombok?
我正在使用 Lombok 生成 POJO,那么如何更改字段的值?
@Value
@AllArgsConstructor
@NoArgsConstructor(force = true, access = AccessLevel.PRIVATE)
@Builder(toBuilder = true, builderClassName = "builder")
public class Student{
String name;
String age;
}
@Value 創建不可變的 object。 一旦 object 初始化,您就無法更改字段的值。 您可以通過使用 toBuilder 方法更改特定屬性來創建新的 object。 例如:
Student s1 = Student.builder()
.name("Sam")
.age("11")
.build();
Student s2 =s1.toBuilder()
.age("12")
.build();
或者您需要刪除@Value 注釋並添加@Data。 然后,您可以對屬性使用 setter。
您可以在上面的 pojo class @Builder(toBuilder = true)
中使用此注釋
Student student1 = Student.builder()
.name("foo")
.id(1)
.build();
Student.StudentBuilder studentBuilder = testStudent.toBuilder();
您也可以只使用@Data
注釋而不是@NoArgConstructor
, @AllArgConstructor
,因為@Data
注釋完成了它們。 如果你有問題,哪個@Data
注解,一般在使用關系實體時會出現這個問題,如果是這樣,你可以在關系實體中使用@ToString.Exclude
注解。
Student Student = Student.builder()
.name("Sam")
.age("11")
.build();
您必須在@Getter
之前添加Steudent
和@Setter
。 然后您可以通過setName(value)
自動更改字段的值。 例子:
Steudent s = new Student();
s.setName("toto");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.