0

对于我的具体任务,我正在尝试检查一个单词是否属于一组指定的词性。这可以这样做:

private boolean validate(String word) {
    if (isNoun(word) || isVerb(word) || isParticiple(word) || ... )
        return true;
    else
        return false;
}

但是,如您所见,它很快变得丑陋且难以扩展。如果我要根据一组 20 条规则测试这些字符串,那么应该有一种更清晰、更具可扩展性的方法来做到这一点。

关于在扩展时如何使我的代码更干净和更好的任何想法?

4

1 回答 1

1

肯定有。您可以构造(或传入) a ,然后像这样遍历它: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.
于 2015-11-29T17:10:09.407 回答