Проверьте, что некоторые члены не являются нулевыми
У меня есть класс с примерно 20 членами, и у меня есть метод для проверки того, что 10 конкретных членов не являются нулевыми. Сначала я подумал, что ни один из них не может быть нулевым, поэтому я делал цикл for this.getClass().getDeclaredFields()
но когда я узнал, что 10 из них действительно могут быть нулевыми, этот план провалился.
Я пробовал гуглить, если был способ установить подмножества членов и проходить только по ним, но не нашел ничего полезного. В противном случае я остался с большим if ((id == null) || (type == null) ... return false
Есть идеи сделать это более чистым способом?
1 ответ
Вы можете создать аннотацию для пометки полей, которые не являются нулевыми, а затем просто отфильтровать список полей в соответствии с аннотацией.
public class ValidateNotNullProperty
{
public static @interface NotNull {}
// example usage
@NotNull
public int id;
public static List<Field> getMandatoryFields(Class<?> cls) {
return Arrays.asList(cls.getDeclaredFields()).stream()
.filter(fld -> fld.isAnnotationPresent(NotNull.class))
.collect(Collectors.toList());
}
}