Java 8中引入了方法引用(Method Reference)的语法,可以根据Lambda表达式,快速地指向一个已有方法,从而简化编程。
Java8方法引用及构造方法引用原理实例解析
Java 8中引入了方法引用(Method Reference)的语法,可以根据Lambda表达式,快速地指向一个已有方法,从而简化编程。
方法引用使用“::”符号来定位某个方法,并用Lambda表达式将方法和函数式接口绑定在一起,从而由Java编译器自动完成Lambda表达式的类型推断。
方法引用的语法格式为:
方法引用的简写格式:“方法所属的类或对象::方法名”
类静态方法引用:"类名::静态方法名"
对象实例方法引用:"对象实例::实例方法名"
构造方法引用的语法格式为:
构造方法引用的简写格式:“类名::new”
方法引用示例
import java.util.Arrays;
import java.util.List;
public class MethodReferenceDemo {
public static void main(String[] args) {
List<String> cities = Arrays.asList("beijing", "shanghai", "shenzhen", "guangzhou");
cities.sort(String::compareToIgnoreCase);
cities.forEach(System.out::println);
}
}
在上面的示例代码中,我们使用了方法引用的语法,将String的compareToIgnoreCase方法和Comparator接口中的compare方法进行了绑定。由于List的sort方法需要传入一个Comparator对象,而这里我们使用了方法引用,相当于传入了一个Comparator对象的实现,完成了字符串的排序。
构造方法引用示例
import java.util.function.Supplier;
public class ConstructorReferenceDemo {
public static void main(String[] args) {
Supplier<String> supplier = String::new;
String helloWorld = supplier.get();
System.out.println(helloWorld);
}
}
在上面的示例代码中,我们使用了构造方法引用的语法,将String类的无参构造方法和Supplier接口进行了绑定,并使用get方法创建了一个字符串对象。实际上,这里的代码可以使用Lambda表达式替代,如下所示:
Supplier<String> supplier = () -> new String();
本文标题为:Java8方法引用及构造方法引用原理实例解析
- 图文详解Java中的序列化机制 2023-06-06
- 详解Java深拷贝,浅拷贝和Cloneable接口 2023-04-23
- java判断各类型字符个数实例代码 2023-08-08
- JSP 中Session的详解及原理分析 2023-07-31
- Java 内存溢出排查 2023-08-31
- Java实现折半插入排序算法的示例代码 2023-04-12
- Java 把json对象转成map键值对的方法 2024-02-03
- Java响应式编程之handle用法解析 2023-06-23
- Java如何实现将类文件打包为jar包 2022-12-08
- springboot 整合dubbo3开发rest应用的场景分析 2023-05-19
