42 Lambda优先于匿名类
- Lambda更加简洁
- 自动推导参数类型
- 枚举实例域优先于特定于常量的类主题 链接传送
备注:
1 匿名内部类与Lambda举例对比
匿名内部类写法 实现排序
/**
* 匿名内部类实现排序
*/
@Test
public void test1() {
List<Integer> list = Arrays.asList(1, 2, 3, 2, 5, 76, 12);
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer firstValue, Integer lastValue) {
return firstValue - lastValue;
}
});
list.stream().forEach(System.out::println);
}
3种Lambda写法 实现排序
@Test
public void test2() {
List<Integer> list = Arrays.asList(1, 2, 3, 2, 5, 76, 12);
Collections.sort(list,(s1,s2)->s1-s2);
Collections.sort(list, Comparator.comparingInt(s -> s));
Collections.sort(list, Integer::compareTo);
// 推荐写法
list.sort(Integer::compareTo);
list.stream().forEach(System.out::println);
}
1 不适合使用Lambda的情况
- 抽象类,而非接口
- 接口不是函数接口(有多个抽象方法)
链接:枚举+Lamda+静态方法策略 干掉if else