我遇到了使用Callable
而不是Supplier
. 我没有看到任何线程产生使用Callable
。但是可以使用Callable
代替Supplier
吗?
与我一起工作的一位开发人员说它做同样的工作。通过文档,它不会但想在这里了解专家的意见。
Callable<Optional<NodePermissionResponse>> successHandler = () -> {
NodePermissionResponse restResponse = response.readEntity(NodePermissionResponse.class);
return Optional.of(restResponse);
};
Callable<Optional<NodePermissionResponse>> errorHandler = () -> {
ApplicationResponse appResponse = response.readEntity(ApplicationResponse.class);
if(appResponse.getError().getStatusCode() == NOT_FOUND_STATUS_CODE) {
return Optional.empty();
}
log.error("Fetching entitlements for group failed", appResponse.getError());
throw new ApplicationAccessException(appResponse.getError());
};
return processResponse(
successHandler, errorHandler, response);
}
处理响应的方法
public static <T> T processResponse(Callable<T> successfulResponseHandler,
Callable<T> unsuccesfulResponseHandler,
Response response) {
//do the job here
}