Как проверить, соответствует ли ввод произвольному количеству правил в Java?
Для своей конкретной задачи я пытаюсь проверить, попадает ли слово в указанный набор частей речи. Это можно сделать так:
private boolean validate(String word) {
if (isNoun(word) || isVerb(word) || isParticiple(word) || ... )
return true;
else
return false;
}
Однако, как вы можете видеть, это быстро становится уродливым и трудно масштабируемым. Если я тестирую эти строки в соответствии с набором из 20 правил, должен быть более чистый и более масштабируемый способ сделать это.
Есть мысли о том, как сделать мой код чище и лучше при масштабировании?
1 ответ
Решение
Там точно есть. Вы можете построить (или передать) List< Predicate<String>>
и затем пройдитесь по нему так:
// rules being the predicate list
boolean valid = true;
for (Predicate<> rule : rules) {
valid = valid && rule.test(word);
}
// At the end of this valid will only remain true if all of the rules pass.