返回

Java: 函数式接口双冒号::实现方法引用,传递方法作为函数参数

发布时间:2022-12-01 16:44:58 321
# java# java# git# github

方法引用是一种函数式接口的另一种书写方式

方法引用分为三种,方法引用通过一对双冒号:: 来表示

  • 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt
  • 实例方法引用,通过实例对象::实例方法,如 str::substring
  • 构造方法引用,通过类名::new, 如 User::new
package com.github.mouday.demo;

import java.util.function.Function;

public class Demo {
    public static void main(String[] args) {
        // 使用双冒号:: 引用静态方法
        Function fun = Integer::parseInt;
        Integer value = fun.apply("20");
        System.out.println(value);
        // 20

        // 使用双冒号:: 引用实例方法
        String content = "Hello";
        Function func = content::substring;
        String result = func.apply(1);
        System.out.println(result);
        // ello

        // 使用双冒号:: 引用构造方法
        Function intFunc = Integer::new;
        Integer ret = intFunc.apply(10);
        System.out.println(ret);
        // 10
    }
}

将函数引用作为方法的参数

package com.github.mouday.demo;

import java.util.function.Function;

public class Demo {
    public static void main(String[] args) {
        Demo.sayHello(String::toUpperCase, "Hello");
        // HELLO

        Demo.sayHello(String::toLowerCase, "Hello");
        // hello
    }

    public static void sayHello(Function func, String text) {
        String result = func.apply(text);
        System.out.println(result);
    }
}

参考 卧槽!你竟然不晓得Java中可以用 :: 吗?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线