В настоящее время я использую аннотации для проверки всех полей в моих объектах.Однако теперь я столкнулся с проблемой, когда аннотации, похоже, не будут работать, и я не уверен ни в каких других решениях.
У меня есть класс Consumer, и в этом классе у меня есть класс PersonalInfo (который содержит поле для ssn)
Основываясь на определенном значении поля в Consumer, я хочу проверить, присутствует ли ssn,
Я попытался создать пользовательскую аннотацию на уровне класса Consumer, однако нет способа передать объект PersonalInfo в качестве аргумента для извлечения ssn.Пользовательские аннотации допускают только аргументы типа int, str и т. Д.
@SSNRequiredForCredit.List({
@SSNRequiredForCredit(reason= "reason", ssn= "personalInfo", message = "SSN cannot be null when reason=credit")
})
public class Consumer {
@NotNull
private String date;
@NotNull
private String sessionNnumber;
@NotNull
private String reason;
@NotNull
private String trackingNumber;
@ //add annotation to require ssn when reason=credit
private PersonalInfo personalInfo;
}
public class PersonalInfo{
private String name;
private String dob;
private String ssn;
private String phoneNum;
private String street;
private String city;
private String state;
private String zip;
}
Попытка добавить пользовательскую аннотацию, подобную показанной выше, но в моем валидаторе (не показан выше) я получаю сообщение об ошибке, что personalInfoнедопустимый аргумент для аннотации.
Я не могу объединить объекты.Любые другие варианты, чтобы решить эту проблему?