@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
public class Example {
public ExampleTwo exampleTwo;
@lombok.Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
public static class ExampleTwo {
private SomeData someData;
private AnotherField anotherField;
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
public class SomeData {
private String specialId;
private String firstName;
private String lastName;
}
所以我检索了一个Example示例,并做了一个深拷贝来复制它,但我希望能够设置复制对象的一个字段,即SomeData嵌套类中的specialId。
SomeData someData = example.getExampleTwo().getSomeData().toBuilder().specialID("SPE_1").build();
Example.ExampleTwo exampleTwo = example.getExampleTwo().toBuilder().someData(someData).build();
Example duplicateExample = example.toBuilder().exampleTwo(exampleTwo).build();
你有没有想过不经过这些额外的步骤就能让它更干净的方法?我希望它更容易阅读。我避免了Serializable实现,并将其声明为一个Cloneable接口,因为我已经阅读了避免这些的方法。最后的办法是使用库。
1条答案
按热度按时间fhity93d1#
@With
可能会有所帮助: