Java Lambda表达式及相关特性深度解析
1. Lambda表达式与异常
Lambda表达式可以抛出异常。但如果抛出的是受检查异常,该异常必须与函数式接口中抽象方法的 throws
子句中列出的异常兼容。
以下是一个计算双精度数组平均值的示例:
interface DoubleNumericArrayFunc {
double func(double[] n) throws EmptyArrayException;
}
class EmptyArrayException extends Exception {
EmptyArrayException() {
super("Array Empty");
}
}
class LambdaExceptionDemo {
public static void main(String args[]) throws EmptyArrayException {
double[] values = { 1.0, 2.0, 3.0, 4.0 };
DoubleNumericArrayFunc average = (n) -> {
double sum = 0;
if (n.length == 0)
throw new EmptyArrayException();
for (int i = 0; i < n.length; i++)