如何将错误处理方法转换为lambda函数

bvpmtnay  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(445)

有没有办法将此方法修改为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);
    }
}
ipakzgxi

ipakzgxi1#

首先,使用适当的参数定义一个接口,然后可以使用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(...);

相关问题