Boh*_*anN 2 java lambda predicate function
我有一个while
循环,它应该在 whilecondition1
为真或 whilecondition2
为真时运行。1
或2
case 取决于一些初始布尔条件。
现在我将其实现为一个三元运算符,但我想了解如何使用 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)
我认为即使在谓词中,您也需要 if/else。
如果您提供更多代码,可能会更容易看到您的目标。使用谓词(然后可以传递等)的一种方法是:
Predicate<StopBtnClass> pred = btn -> btn.getText().length() > 0 ? btn.waitToBeHidden() : btn.isDisplayed();
while(pred.test(stopBtn)) {
...
Run Code Online (Sandbox Code Playgroud)