java8 lambda表达式-其他

时间:2022-12-28 19:06:04

1、方法使用

类::静态方法

对象::实例方法

类::实例方法

System.out::println

Math::pow 等同 (x,y)->Math.pow(x,y)

this::equals->this.equals(x)

2、构造器使用

Person:new

3、变量作用域

在lambda表达式中访问其他的变量,lambda表达式可以自动获取值。其实lambda表达式就是闭包

java8之前只能访问final的局部变量,java8可以访问任何值不发生变化的变量(这个变量初始化后,不会赋予一个新值的变量)

4、默认方法

java8接口可以默认的实现方法

interface Person{

long getId();

default String getName(){return ""}

如果一个java类实现两个接口,并且两个接口有相同的默认方法,这样会导致冲突,必须覆盖解决冲突

如果一个java类继承一个类和实现一个接口,这个类的方法和接口的默认方法相同,不会冲突,java类使用类的方法(类优先)

5、接口的静态方法

接口用可以有静态方法,但是违法了抽象原则