93 java8新特性_4 _方法引用 方法引用 方法引用: 方法引用是Lambda表达式的一种简写形式。 如果Lambda表达式方法体中只是调用一个特定的已经存在的方法,则可以使用方法引用。 常见形
93 java8新特性_4 _方法引用
方法引用
- 方法引用:
- 方法引用是Lambda表达式的一种简写形式。 如果Lambda表达式方法体中只是调用一个特定的已经存在的方法,则可以使用方法引用。
- 常见形式:
- 对象::实例方法
- 类::静态方法
- 类::实例方法
- 类::new
代码:
package com.wlw.chapter13_java8.demo01;import java.util.Comparator;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
/**方法引用的使用
* 常见形式:
* - 对象::实例方法
* - 类::静态方法
* - 类::实例方法
* - 类::new
*/
public class Demo03 {
public static void main(String[] args) {
//对象::实例方法
//Consumer<T>消费型接口 ,唯一的方法是有参数无返回值
Consumer<String> consumer1 = s -> { System.out.println(s); };
consumer1.accept("hello");
// 方法引用,println()方法也是有参数无返回值,和这个函数式接口中的方法相似
Consumer<String> consumer2 = System.out::println;
consumer2.accept("world");
//类::静态方法
Comparator<Integer> comparator1 =(o1,o2)->Integer.compare(o1,o2);
Comparator<Integer> comparator2 = Integer::compareTo;
//类::实例方法
Function<Employee,String> function1 = e -> e.getName();
Function<Employee,String> function2 = Employee::getName;
System.out.println(function2.apply(new Employee("zhangsan",20)));
//类::new
Supplier<Employee> supplier1 = ()-> new Employee();
Supplier<Employee> supplier2 = Employee::new;
Employee employee = supplier2.get();
System.out.println(employee.toString());
}
}
/*执行结果:
hello
world
zhangsan
Employee{name='null', age=0}
*/