当前位置 : 主页 > 编程语言 > java >

93 java8新特性_4 _方法引用

来源:互联网 收集:自由互联 发布时间:2022-07-13
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}
*/


上一篇:94 java8新特性_5 _Stream API
下一篇:没有了
网友评论