Мне интересно, есть ли более элегантный способ кодирования следующего, который использует некоторую комбинацию потоков, лямбда-выражений и ссылок на методы:
final boolean valid = StringUtils.hasText(obj.getFirstName())
&& StringUtils.hasText(obj.getLastName())
&& StringUtils.hasText(obj.getGender())
&& StringUtils.hasText(obj.getDob());
В идеале это будет выглядеть примерно так:
final boolean valid =
something(StringUtil::hasText,
obj.getFirstName(),
obj.getLastName(),
obj.getGender(),
obj.getDob());
Или, возможно:
final boolean valid =
something(StringUtil::hasText, obj,
Type::getFirstName(),
Type::getLastName(),
Type::getGender(),
Type::getDob());
Очевидно, что вы можете поместить все геттеры в список и затем использовать поток, но это выглядит очень многословно.Мне кажется, что может быть библиотечная функция, которая делает что-то подобное, либо в JRE, либо, возможно, в Spring или Apache.