栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK8方法引用和构造函数引用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDK8方法引用和构造函数引用

  • 以前⽅法调⽤ 对象.⽅法名 或者 类名.⽅法名
  • 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 fun = Integer::parseInt;
 Integer value = fun.apply("1024");
 System.out.println(value);
 // 使⽤双冒号::来构造⾮静态函数引⽤
 String content = "欢迎来到⼩滴课堂学习";
 Function func = content::substring;
 String result = func.apply(1);
 System.out.println(result);
 // 构造函数引⽤,多个参数
 BiFunction biFunction = User::new;
 User user1 = biFunction.apply("⼩滴课堂", 28);
 System.out.println(user1.toString());
 //构造函数引⽤,单个参数
 Function function = User::new;
 User user2 = function.apply("⼩D");
 System.out.println(user2.toString());
 // 函数引⽤也是⼀种函数式接⼝,可以将函数引⽤作为⽅法的参数
 sayHello(String::toUpperCase, "xdclass.net");
}

 private static void sayHello(Function 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;
 }
 }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号