// Lambda只能简化接口中只有一个抽象方法的匿名内部类形式
public class Test2 {
public static void main(String[] args) {
Swin s = new Swin() {
@Override
public void swin() {
System.out.println("游泳");
}
};
Swin s1 = ()->System.out.println("游泳");
//三者效果一致
go(s);
go(s1);
go(()->System.out.println("游泳"));
}
public static void go(Swin s){
System.out.print("快");
s.swin();
}
}
判断内置方法是否可以简化,查看该方法是否有注释(@FunctionalInterface)即可
public class SortDemo {
public static void main(String[] args) {
Integer[] s = {3,45,6,7,81,1,2};
// Arrays.sort(s, new Comparator<Integer>() {
// @Override
// public int compare(Integer o1, Integer o2) {
// return o2-o1;
// }
// });
Arrays.sort(s, (Integer o1, Integer o2)->{return o2-o1;});
Arrays.sort(s, (o1, o2)->{return o2-o1;}); # 参数类型可以不写
Arrays.sort(s, (o1, o2)->o2-o1); //方法只有return,可以不写return
//Arrays.sort(s, o1->o2-o1); //只有一个参数,可不写小括号
System.out.println(Arrays.toString(s));
}
}