前言
希望在java里实现js的函数回调的效果,用于封装统一的异常处理逻辑。看了下函数式编程与lambda表达式,如下。
一、接口示例
@FunctionalInterface
interface Callback {
public Object call(Object object) throws Exception;
}
二、实例
/**
* 执行语句 捕捉异常 记录日志 发送邮件 任务重试
*
* @param object
* @param callback
* @return
*/
public Object exceptionHandler(Object object, String errorDescription, Callback callback) {
while (true) {
try {
return callback.call(object);
} catch (Exception e) {
// 异常处理逻辑
}
}
}
三、调用
exceptionHandler(null, "errorDescription", (x) -> {
// 语句块
return ...;
});