zoukankan      html  css  js  c++  java
  • 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<String, Integer> fun = Integer::parseInt;
      Integer value = fun.apply("1024");
      System.out.println(value);
      // 使⽤双冒号::来构造⾮静态函数引⽤
      String content = "欢迎来到⼩滴课堂学习";
      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("⼩滴课堂", 28);
      System.out.println(user1.toString());
      //构造函数引⽤,单个参数
      Function<String, User> function = User::new;
      User user2 = function.apply("⼩D");
      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;
      }
    }
  • 相关阅读:
    16、使用limit offset 分页时,为什么越往后翻越慢?如何解决?
    字符串的排列
    从上往下打印二叉树
    栈的压入、弹出序列
    二叉树的镜像
    合并两个排序的链表
    链表中倒数第K个结点
    调整数组顺序使奇数位与偶数前面
    在O(1)时间删除链表结点
    从头到尾打印链表
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/12153869.html
Copyright © 2011-2022 走看看