我有ParticipantDTO类,它有一些属性,如name,surname,personalData等。
我有字段 pesel ,这是每个人的唯一编号,并根据此编号可以获得birthDate。我有一个处理 pesel 的方法来获取 birthDate ,就像:
String getBirth(String pesel){...}
问题是...... 如果我有ParticipantDTO的实例,我如何处理它以填充 birthDate 字段? BirthDate 是 PersonalData 类属性, pesel 和 PersonalData 是 ParticipantDTO 的属性。我想获得类似的东西:
ParticipantDTO fillBirthDate(ParticipantDTO source){...}
我不知道这样做的简单方法。反思,也许吧? :(
如果我有例如:
public static PersonalData samplePersonalData() {
return PersonalData.builder()
.birthDate(**none!**)
.emergencyContactName("Uncle Bob")
.emergencyContactNumber(444555666L)
.build();
}
public static ParticipantDTO sampleParticipantWithoutBirthDate() {
return ParticipantDTO.builder()
.id(1L)
.firstName("Sample")
.pesel("98101012345")
.personalData(samplePersonalData)
.build();
}
我打电话给: ParticipantDTO participantWithBirthDate = fillBirthDate(参与者) 我希望 participantWithBirthDate.getPersonalData.getBirthDate =“01.01.1998”,因为 pesel 是“980101 ....
Assumtions: ParticipantDTO 课程:
@Immutable
@Builder
@EqualsAndHashCode
@ToString
@Getter
public final class ParticipantDTO {
private final Long id;
private final String firstName;
private final String pesel;
@Builder.Default
private final PersonalData personalData =
PersonalData.builder().build();
PersonalData 类:
@Value
@Builder
@EqualsAndHashCode(exclude = "birthDate")
public class PersonalData {
private final String birthDate;
private final String emergencyContactName;
private final Long emergencyContactNumber;