如何将错误处理方法转换为 Lambda 函数
Posted
技术标签:
【中文标题】如何将错误处理方法转换为 Lambda 函数【英文标题】:How can I convert an error handling method into a Lambda function 【发布时间】:2021-09-18 10:24:47 【问题描述】:有没有办法将此方法修改为 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,并试图围绕如何将我拥有的某些常用方法转换为 lambda。 请注意,虽然您可以 执行此操作,但这里没有任何好 的想法可以转换为 lambda。 【参考方案1】:首先,定义一个带有适当参数的接口,然后你可以使用 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(...);
【讨论】:
感谢您的回答!我看到一个编译错误目标方法是通用的。我应该以不同的方式处理泛型类型 Response以上是关于如何将错误处理方法转换为 Lambda 函数的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 Parse.com 将 HTTP 错误转换为 NSError?
AWS lambda 函数-“发生错误:收到来自 Lambda 的错误响应:已处理”