简化函数式接口(只有一个抽象方法的接口,有的接口上会加@FunctionInterface作强校验),创建匿名内部类。
参数类型可以省略不写。
如果只有一个参数,参数类型可以省略,同时()也可以省略。
如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!
如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写
原代码
Integer[] ages1 = {34, 12, 42, 23};
Arrays.sort(ages1, new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1; // 降序
}
});
//初步简化为签名加方法体。
Arrays.sort(ages1, (Integer o1, Integer o2) -> {
return o2 - o1; // 降序
});
//参数类型可以省略不写。
Arrays.sort(ages1, ( o1, o2) -> {
return o2 - o1; // 降序
});
//如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!
如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写
Arrays.sort(ages1, ( o1, o2 ) -> o2 - o1 );