Java优雅的执行方法直到条件满足

标签 java conditional-statements

我有一个带有变量的方法 listElement 我用 null 初始化并想在某个列表(方法输入)上执行最多 9 个不同的方法,直到找到一个我可以覆盖的值 listElement 与。

如果它不再为空,我不想执行其余的方法。如果所有方法都找不到要覆盖的变量,我想返回 null。

示例:

    public XXX findListElement(List<XXX> listsOfxxx) {

    XXX listElement = null;

    listElement = firstMethod(listsOfxxx);
    listElement = secondMethod(listsOfxxx);
    listElement = thirdMethod(listsOfxxx);
    listElement = fourthMethod(listsOfxxx);
    listElement = fifthMethod(listsOfxxx);
    ...

    return listElement;
}

如果第一个方法已经找到我的变量,我该如何跳过其余的方法? 这背后的想法是检查从同花顺到高牌的扑克手牌强度,如果我在我的可能组合列表中发现同花顺,我不想检查同花四,因为它们被同花顺打败了反正。然后我可以简单地将找到的同花顺作为该玩家的最强组合返回。

最佳答案

您应该使用 Streams API。

    return Stream.<Function<List<Xxx>, Xxx>>of(this::firstMethod,
                                               this::secondMethod,
                                               this::thirdMethod)
                 .map(f -> f.apply(listOfXxx))
                 .filter(Objects::nonNull)
                 .findFirst().orElse(null);

关于Java优雅的执行方法直到条件满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431306/

相关文章:

java - 以方面切入点执行为条件

java - 从网站拍摄照片并将其加载到 JavaFX 中

java - 从另一个类扩展的类可以使用具有不同返回类型的相同方法吗?

java - itext如何检查pdf页面上是否存在巨型字符串

java - 当列表为 null 或为空时,JPA createQuery 将列表作为参数传递

python - django 形式的条件逻辑

java - 找不到媒体类型 = 文本/html 的 MessageBodyWriter 但适用于 JSON

php - PHP 或 Jquery 中不存在值时的条件语句

regex - 如何在 bash 脚本中使用正则表达式?

jquery - 使用 Jquery 中的 if 语句禁用单击时的正常链接行为?