Как вызвать универсальную функцию внутри другой функции с тайм-аутом с Java 8?

\- должен работать, чтобы избежать - в диапазоне символов. Можете ли вы процитировать то, что вы тестировали, когда это не показалось? Потому что он работает: http://jsbin.com/odita3

1
задан totothegreat 18 March 2019 в 19:03
поделиться

1 ответ

В частности, используя ваш пример:

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() или подобное.

0
ответ дан Not a JD 18 March 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: