用for循环查询一个接口,如果没值一直查询直到有值,如果有值就跳出for循环,不重复查询
import java.util.concurrent.TimeUnit;
public class RetryUntilValue {
public static void main(String[] args) throws InterruptedException {
// 假设这是一个模拟的接口调用,可能暂时没有值
Supplier<String> apiCall = () -> {
// 模拟 API 调用
try {
Thread.sleep(1000); // 模拟网络延迟
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new IllegalStateException(e);
}
// 假设前几次调用没有值
if (Math.random() > 0.5) {
return null;
}
return "Data Available";
};
// 尝试调用接口,直到有值为止
String result = retryUntilValue(apiCall);
System.out.println("Result: " + result);
}
/**
* 尝试调用一个可能暂时没有值的接口,直到有值为止。
*
* @param suppl