• Index

方法引用

Last updated: ... / Reads: 50 Edit

方法引用是Java 8引入的一种简化Lambda表达式的语法,允许直接引用现有方法(静态方法或实例方法)而不是显式地编写Lambda表达式。方法引用有以下四种类型:

  • 静态方法引用:ClassName::staticMethodName
  • 实例方法引用:instance::instanceMethodName
  • 类型实例方法引用:ClassName::instanceMethodName
  • 构造方法引用:ClassName::new

以下是一些方法引用的示例:

// 静态方法引用
Function<Integer, String> intToString = Integer::toString;

// 实例方法引用
String str = "hello";
Supplier<Integer> strLength = str::length;

// 类型实例方法引用
BiPredicate<String, String> startsWith = String::startsWith;

// 构造方法引用
Supplier<List<String>> listSupplier = ArrayList::new;

方法引用通常用于简化代码,特别是在使用函数式接口和Stream API时。例如,假设我们有一个字符串列表,我们想要将其转换为整数列表:

List<String> stringList = Arrays.asList("1", "2", "3");
List<Integer> intList = stringList.stream()
                                   .map(Integer::parseInt)
                                   .collect(Collectors.toList());

在这个示例中,我们使用了静态方法引用Integer::parseInt来替代Lambda表达式(s -> Integer.parseInt(s))


Comments

Make a comment

  • Index