Java 8方法引用与构造器引用,数组引用举例分析
方法引用与构造器引用
在Java 8中,引入了方法引用和构造器引用的概念,这可以简化代码并提高可读性。方法引用指的是直接引用已经存在的方法,构造器引用指的是引用已经存在的构造器。下面分别介绍方法引用和构造器引用的用法和示例。
方法引用
方法引用用于引用一个已经存在的方法,并且可以将其作为函数式接口的实例来使用。方法引用的语法形式为:接口或类名::方法名。方法引用一般分为四种情况:
- 引用静态方法;
- 引用某个对象的实例方法;
- 引用某个类型的任意对象的实例方法;
- 引用构造方法。
下面以示例代码来分别说明这四种情况:
numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(MethodReferenceDemo::print);
// 2. 引用某个对象的实例方法
MethodReferenceDemo demo = new MethodReferenceDemo();
numbers.forEach(demo::printInstance);
// 3. 引用某个类型的任意对象的实例方法
numbers.forEach(Integer::toString);
// 4. 引用构造方法
List strings = Arrays.asList("Hello", "World");
strings.stream().map(String::new).forEach(System.out::println);
}
public static void print(Integer number) {
System.out.println(number);
}
public void printInstance(Integer number) {
System.out.println(number);
}
}
import java.util.Arrays;
import java.util.List;
public class MethodReferenceDemo {
public static void main(String[] args) {
// 1. 引用静态方法
List
在上述代码中,首先定义了一个方法引用的类MethodReferenceDemo,并且实现了一个静态方法和一个实例方法print和printInstance。然后在main方法中使用方法引用对数字集合进行遍历和操作:
- 引用静态方法:使用类名::方法名的形式,直接引用静态方法print,可以输出数字集合中的每个元素;
- 引用某个对象的实例方法:使用对象::方法名的形式,直接引用实例方法printInstance,可以输出数字集合中的每个元素;
- 引用某个类型的任意对象的实例方法:使用类型::方法名的形式,直接引用Integer类的实例方法toString,可以将每个数字转为字符串;
- 引用构造方法:使用类型::new的形式,直接引用String类的构造方法,可以将每个字符串进行实例化。
构造器引用
构造器引用用于引用一个已经存在的构造方法,可以将构造方法引用作为函数式接口的实例来使用。构造器引用的语法形式为:类名::new。构造器引用只有一种情况:
引用某个类型的构造方法。下面以示例代码来说明构造器引用的用法:
import java.util.function.Supplier;
public class ConstructorReferenceDemo {
public static void main(String[] args) {
// 引用String的构造方法
Supplier<String> supplier = String::new;
String str = supplier.get();
System.out.println(str);
}
}
在上述代码中,首先定义了一个构造器引用的类ConstructorReferenceDemo。然后在main方法中使用构造器引用对String的构造方法进行引用,并且使用其作为Supplier的实例。最后调用supplier的get方法可以获取到一个String类型的实例,并输出。
猜您想看
-
如何在 CentOS 7 上配置 RAID 存储系统?
。如何在Cen...
2023年04月24日 -
怎么浅析Entity Framework Core2.0的日志记录与动态查询条件
Entity ...
2023年07月23日 -
如何解决手机耳机插孔问题
问题诊断解决手...
2024年05月30日 -
TMS320C6678开发环境搭建之CCS5.5.0如何安装
1、下载CCS...
2023年05月26日 -
如何进行前端UI框架Ant Design Pro分析
一、Ant D...
2023年05月25日 -
SQL Server如何修改分区表中的数据
修改分区表中的...
2023年07月22日