В частности, используя ваш пример:
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()
или подобное.
Вам будет нужен тип возврата Nullable (Целого числа).
Если Вы строго говорите о нулевой ссылке (версия C# пустого указателя) затем, ответ является номером и dommer и Mitch, имеют верное представление здесь. Необходимо было бы возвратить Nullable (Целого числа) для передачи отсутствия значения.
Однако VB не имеет нулевого значения. Вместо этого это Ничего не использует. Ничто не представляет пустое значение и для значения и для ссылочных типов. Это конвертируемо к любому типу значения и просто представляет эквивалент значения по умолчанию (T) в C#. Многие люди говорят, что пустой указатель при разговоре о VB, но действительно Ничего не означает. Если это верно, затем да, Вы Ничего не можете возвратить из Целочисленной функции возврата
Public Function Example() As Integer
Return Nothing
End Function
Только если это определяется как возврат nullable целого числа.