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类型的实例,并输出。
猜您想看
-
Kafka中时间轮TimingWheel的示例分析
Kafka中的...
2023年07月23日 -
scala的单例对象是什么
单例对象是Sc...
2023年07月23日 -
如何解决电脑在Windows更新时无法启动
解决电脑在Wi...
2023年04月27日 -
Java中怎么判断整数溢出
整数溢出的概念...
2023年07月23日 -
Redis的java客户端Jedis的代码怎么写
1.简介Jed...
2023年05月26日 -
怎样进行赋能Jupyter Notebooks
1. Jupy...
2023年05月26日