常见的引用方式:
1、引用类方法:类的静态方法 System.out::println
2、引用对象的实例方法:类中的成员方法 ps::printUpper
3、引用类的实例方法: String::substring
4、引用构造器: Student::new
'1'
//引用类方法,都是静态方法的引用
usePrintable(System.out::println);
useConverter(Integer::parseInt);
'2'
//引用对象的实例方法
PrintString ps = new PrintString();
usePrinter(ps::printUpper);
//Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数
'3'
useMyString((s,x,y) -> s.substring(x,y));
//引用类的实例方法
useMyString(String::substring);
//Lambda表达式被类的实例方法替代的时候
//第一个参数作为调用者
//后面的参数全部传递给该方法作为参数
‘4’
useStudentBuilder((name,age) -> new Student(name,age));
//引用构造器
useStudentBuilder(Student::new);
//Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数