У меня есть следующий класс:ValidateValue() выдает исключение незаконного аргумента, если свойство не имеет правил?
class Foo
{
@NotEmpty
private String member1;
@NotEmpty
private String member2;
private String member3; //this one is optional, so has no rules
}
У меня есть библиотека, в которой я добавляю все имена свойств и соответствующих полей пользовательского интерфейса, каждый раз, когда происходит onChange
событие пользовательского интерфейса, я называю validateValue()
по данному имени поля для этого поле, чтобы проверить его и показать сообщение об ошибке/успехе.
Проблема в том, в этом случае, если у меня нет никаких правил для member3
, если я пытаюсь проверить его, делая это:
String value = event.getValue(); //whatever the new value is now
validator.validateValue(Foo.class, "member3", value);
На 2-й линии, я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: member3 is not a valid property of
com.xxx.Foo
Оба member1
и member2
в том же классе, являются правильными.
Есть ли что-нибудь, что я могу сделать, чтобы избежать получения этого исключения в полях, на которых не установлены какие-либо правила? Если нет, есть ли способ (без отражения или указания его вручную для каждого поля), чтобы проверить, нет ли правила, установленного на нем, поэтому я могу избежать вызова validateValue на нем?
Я использую 4.1.x, к сожалению, я не могу обновить :( –