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

Boh*_*anN 2 java lambda predicate function

我有一个while循环,它应该在 whilecondition1为真或 whilecondition2为真时运行。12case 取决于一些初始布尔条件。

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

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

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

Den*_*ker 5

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

如果您提供更多代码,可能会更容易看到您的目标。使用谓词(然后可以传递等)的一种方法是:

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

while(pred.test(stopBtn)) {
    ...
Run Code Online (Sandbox Code Playgroud)