java中的函数式接口
函数式接口中只有一个方法,如果重写了Object的方法不算,java1.8之后可以用@FunctionalInterface标识一个函数式接口,但是符合条件的接口标识与否都会按照函数式接口编译。
@FunctionalInterface
public interface AsyncUncaughtExceptionHandler {
void handleUncaughtException(Throwable ex, Method method, Object... params);
}
匿名内部类写法实现
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return new AsyncUncaughtExceptionHandler() {
@Override
public void handleUncaughtException(Throwable ex, Method method, Object... params) {
// TODO Auto-generated method stub
}
};
}
lamdon写法实现
需要注意的是如下lamdon表达式括号中的是形参变量,所以不需要定义,乍一看以为是实参。
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return (throwable, method, objects) -> {
// TODO Auto-generated method stub
};
}