一,方法引用符
::该符号是方法引用符,它所在的表达式称为方法引用
一般用来改进Lambda表达式如:
printint(i-> System.out.println(i));可以优化为:printint(System.out::println);
二,Lambda表达式支持的方法引用
1、引用类方法
实际就是引用类的静态方法
格式:类名::静态方法
当Lambda表达式被这种类方法替代的时候,它的形参会全部传递给静态方法
printint(i -> System.out.println(i));
printint(System.out::println);
2、引用对象的实例方法
就是引用类中的成员方法
格式:对象::成员方法
当Lambda表达式被这种对象的实例方法替代的时候,它的形参会全部传递给该方法
引用的对象的方法不能是静态的
Student student =new Student();
printstudy(student::study);
3、引用类的实例方法
就是引用类中的成员方法
格式:类名::成员方法
当Lambda表达式被类的实例方法代替的时候,多个参数时,第一个参数作为调用者,后面的全部传递给该方法作为参数
引用的类的方法必须是静态的
user(Int::intchange);
4、引用构造器
就是引用构造方法
格式:类名::new
Lambda表达式被构造器代替的时候,他的形参全部传递给构造器作为参数
user(Student::new);