如何将错误处理方法转换为 Lambda 函数
How can I convert an error handling method into a Lambda function
是否可以将此方法修改为 lambda 函数?
public static <T> void checkResponse(Response<T> response, String errorMessage, Map<String,String> values) throws IOException {
if (!response.isSuccessful()) {
String message = StringSubstitutor.replace(errorMessage, values);
logger.error(message);
throw new RuntimeException(message, null);
}
}
首先,定义一个带有适当参数的接口,然后你可以使用lambda来实现它。
@FunctionalInterface
interface ResponseHandler<T> {
void handleResponse(Response<T> response, String errorMessage, Map<String,String> values);
}
// ...
ResponseHandler handler = (response, errorMessage, values) -> {
if (!response.isSuccessful()) {
String message = StringSubstitutor.replace(errorMessage, values);
logger.error(message);
throw new RuntimeException(message, null);
}
};
// Call it:
handler.handleResponse(...);
是否可以将此方法修改为 lambda 函数?
public static <T> void checkResponse(Response<T> response, String errorMessage, Map<String,String> values) throws IOException {
if (!response.isSuccessful()) {
String message = StringSubstitutor.replace(errorMessage, values);
logger.error(message);
throw new RuntimeException(message, null);
}
}
首先,定义一个带有适当参数的接口,然后你可以使用lambda来实现它。
@FunctionalInterface
interface ResponseHandler<T> {
void handleResponse(Response<T> response, String errorMessage, Map<String,String> values);
}
// ...
ResponseHandler handler = (response, errorMessage, values) -> {
if (!response.isSuccessful()) {
String message = StringSubstitutor.replace(errorMessage, values);
logger.error(message);
throw new RuntimeException(message, null);
}
};
// Call it:
handler.handleResponse(...);