在 Java 中将函数应用于 while 循环

Apply Function to while loop in Java

我有 while 循环,它应该 运行 而 condition1 为真或 condition2 为真。 12 大小写取决于一些初始布尔条件。

现在我将其实现为三元运算符,但我想了解如何使用谓词和 lambda 表达式来完成此操作。 有人可以举个例子吗?如何声明一个函数变量并将其放入 while 循环条件?

boolean initialCondition = stopBtn.getText().length() > 0;

while(initialCondition ? stopBtn.waitToBeHidden() : stopBtn.isDisplayed()) {
    if (a++ < 5) {
        stopBtn.click();
    }
}
return this;

您可以使用 BooleanSupplier 来模拟条件:

java.util.function.BooleanSupplier condition = stopBtn.getText().length() > 0 ?
     stopBtn::waitToBeHidden : 
     stopBtn::isDisplayed;

while (condition.getAsBoolean()) {
    ...
}

我认为即使在谓词中你也需要你的if/else。

如果您提供更多代码,可能会更容易看出您打算做什么。使用谓词(然后你可以传递等)的一种方法是:

Predicate<StopBtnClass> pred = btn -> btn.getText().length() > 0 ? btn.waitToBeHidden() : btn.isDisplayed();

while(pred.test(stopBtn)) {
    ...