Java 8 引入了一种新的语法,称为方法引用,它可以让你使用简洁的语法来引用一个已存在的方法或构造函数。它有助于减少冗余代码,并使代码更加易读。
方法引用有三种形式:静态方法引用、实例上的方法引用和构造函数引用。
// 静态方法引用 Consumer<String> consumer = System.out::println; consumer.accept("Hello World!"); // 实例上的方法引用 String str = "Hello World!"; Function<String, String> function = str::toUpperCase; System.out.println(function.apply(str)); // 构造函数引用 Supplier<StringBuilder> supplier = StringBuilder::new; System.out.println(supplier.get()); // 输出 "" 空字符串
我们可以通过指定实际的类型参数来在方法引用中使用通用方法。
语法如下:
ClassName::<TypeName>methodName
通用构造函数引用的语法:
ClassName<TypeName>::new
以下代码使用通用的Arrays.asList方法创建lambda表达式,并将参数设置为String。
import java.util.Arrays; import java.util.List; import java.util.function.Function; public class Main{ public static void main(String[] argv){ Function<String[],List<String>> asList = Arrays::<String>asList; System.out.println(asList.apply(new String[]{"a","b","c"})); } }
上面的代码生成以下结果。
Java Lambda-Java谓词接口谓词接口包含以下默认和静态方法。我们可以使用NOT,AND和OR方法来创建基于其他谓词的谓词。defaultPre...
Java Lambda表达式上下文lambda表达式可以只在以下四种环境中使用。赋值上下文方法调用上下文返回上下文转换上下文赋值上下文lam...
JavaFX教程 -JavaFX转换JavaFX转换相关类位于javafx.scene.transform包中,并且是Transform类的子类。一个变换是关于如何改变坐...
Java面向对象设计 -Java类实例以下是创建类的实例的一般语法:new Class Constructor; new 运算符后面是对构造函数的调用。 new ...
Java IO教程 - Java输入流抽象基本组件是InputStream类。InputStream | +--FileInputStream| +--ByteArrayInputStream| +--Piped...