簡體   English   中英

如何使用 Lombok 更改生成的 POJO 的字段值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM