我当前正在使用注释来验证对象中的所有字段。但是,现在我遇到了一个问题,似乎注释不起作用,并且我不确定其他解决方案。
我有一个Consumer类,并且在该类中有PersonalInfo类(其中包含ssn字段)
基于使用者中的某个字段值,我想检查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不是注释的可接受参数。
我无法合并对象。还有其他解决方案吗?