前言
希望在java里實(shí)現(xiàn)js的函數(shù)回調(diào)的效果矢棚,用于封裝統(tǒng)一的異常處理邏輯「看了下函數(shù)式編程與lambda表達(dá)式蒲肋,如下。
一钝满、接口示例
@FunctionalInterface
interface Callback {
public Object call(Object object) throws Exception;
}
二兜粘、實(shí)例
/**
* 執(zhí)行語(yǔ)句 捕捉異常 記錄日志 發(fā)送郵件 任務(wù)重試
*
* @param object
* @param callback
* @return
*/
public Object exceptionHandler(Object object, String errorDescription, Callback callback) {
while (true) {
try {
return callback.call(object);
} catch (Exception e) {
// 異常處理邏輯
}
}
}
三、調(diào)用
exceptionHandler(null, "errorDescription", (x) -> {
// 語(yǔ)句塊
return ...;
});