JDK8⽅法引⽤的简介说明
下文笔者讲述jdk8中方法引用的简介说明,如下所示
jdk8方法引用的实现思路
JDK1.8以前的调用方法 对象.⽅法名 或 类名.⽅法名 jdk1.8提供另外⼀种调⽤⽅式 :: 注意事项: 双冒号是jdk1.8中使用Lambda访问对象中的方法 双冒号语法: 语法:左边是容器(可以是类名,实例名),中间是" :: ",右边是相应的⽅法名 静态⽅法,则是ClassName::methodName。如 Object ::equals 实例⽅法,则是Instance::methodName 构造函数,则是 类名::new;
方法引用的定义
单个参数 Function<⼊参1, 返回类型> func = ⽅法引⽤ 应⽤ func.apply(⼊参); 2个参数 BiFunction<⼊参1,⼊参2, 返回类型> func = ⽅法引⽤ 应⽤ func.apply(⼊参1,⼊参2);
方法引用的示例
public class TestJdk8 { public static void main(String[] args) { // 使⽤双冒号::来构造静态函数引⽤ Function<String, Integer> fun = Integer::parseInt; Integer value = fun.apply("8888"); System.out.println(value); // 使⽤双冒号::来构造⾮静态函数引⽤ String content = "欢迎来到java265"; Function<Integer, String> func = content::substring; String result = func.apply(1); System.out.println(result); // 构造函数引⽤,多个参数 BiFunction<String, Integer, User> biFunction = User::new; User user1 = biFunction.apply("java爱好者", 28); System.out.println(user1.toString()); //构造函数引⽤,单个参数 Function<String, User> function = User::new; User user2 = function.apply("java265"); System.out.println(user2.toString()); // 函数引⽤也是⼀种函数式接⼝,可以将函数引⽤作为⽅法的参数 sayHello(String::toUpperCase, "xdclass.net"); } /** * * @param func 函数引⽤ * @param param 对应的参数 */ private static void sayHello(Function<String, String> func, String param) { String result = func.apply(param); System.out.println(result); } } class User { private String username; private Integer age; public User() { } public User(String username) { this.username = username; } public User(String username, Integer age) { this.username = username; this.age = age; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。