我有while
循环,应该在condition1
为真或condition2
为真时运行。 1
或2
的大小写取决于某些初始布尔条件。
现在,我将其实现为三元运算符,但我想了解如何使用谓词和lambda表达式来完成此操作。
有人可以提供例子吗?如何声明一个Function变量并将其置于while
循环条件中?
boolean initialCondition = stopBtn.getText().length() > 0;
while(initialCondition ? stopBtn.waitToBeHidden() : stopBtn.isDisplayed()) {
if (a++ < 5) {
stopBtn.click();
}
}
return this;
最佳答案
我认为即使在谓词中,您也需要if / else。
如果您提供更多的代码,可能会更容易看到您打算做什么。使用谓词(您可以随后绕过等)的一种方法是:
Predicate<StopBtnClass> pred = btn -> btn.getText().length() > 0 ? btn.waitToBeHidden() : btn.isDisplayed();
while(pred.test(stopBtn)) {
...