一、Lambda表达式
1、Lambda表达式标准格式
三要素
1、一些参数
2、一个箭头
3、一些代码
、 public static void main(String[] args) {
// 匿名内部类
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "起动");
}
}).start();
// Lambda表达式标准写法
new Thread(() -> {
System.out.println(Thread.currentThread().getName() + "起动");
}).start();
// Lambda表达式省略写法
new Thread(() -> System.out.println(Thread.currentThread().getName() + "起动")).start();
Person[] personArr = { new Person("古力娜扎", 18), new Person("迪丽热巴", 16), new Person("苍井空", 26), };
System.out.println(Arrays.toString(personArr));
// 匿名内部类
Arrays.sort(personArr, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
System.out.println(Arrays.toString(personArr));
// 标准写法
Arrays.sort(personArr, (Person p1, Person p2) -> {
return p1.getAge() - p2.getAge();
});
//省略写法
Arrays.sort(personArr, (p1, p2) -> p1.getAge() - p2.getAge());
}
2、Lambda表达式的省略规则
1、参数的类型可以省略,但是只能省略所有类型或者都不省略
2、如果参数有且仅有一个()可以省略
3、如果大括号内的语句有且仅有一个,那么无论有没有返回值 return {}和;都可以省略
二、接口更新
接口组成:
常量 修饰符 public static final(都可以省略)
抽象方法 修饰符 public abstract(都可以省略)
默认方法 修饰符 public default (public 可以省略)1.8新特性
主要用于接口升级
静态方法 修饰符 public static (public可以省略)1.8新特性
接口中的静态方法可以作为工厂使用(在jdk1.9中大量使用)
私有方法 修饰符 private 1.9新特性