\-
должен работать, чтобы избежать -
в диапазоне символов. Можете ли вы процитировать то, что вы тестировали, когда это не показалось? Потому что он работает: http://jsbin.com/odita3
В частности, используя ваш пример:
public void runGenericForXSeconds(BooleanSupplier supplier, int seconds) throws SOMEEXCEPTION {
int timeout = currentTime + seconds; // milliseconds
while (currentTime < timeout) {
if (supplier.getAsBoolean())
return; // if true exits the method, for the rest of the program, we are all good
}
throw new SOMEEXCEPTION("something failed"); // the function failed
}
Тогда вашему поставщику просто нужно вернуть true
или false
. Например :
runGenericForXSeconds(() -> !checkCurrentState("ACTIVE"), 100);
Обратите внимание, что у вас занятый цикл. Если вы явно не хотите этого, вы можете сделать паузу между вызовами, используя Thread.sleep()
или подобное.