JDK1.8新特性【之】方法引用(定义、解析、使用)

本文详细介绍了Java 1.8中引入的方法引用特性,包括3种形式的使用:类名::静态方法、实例名::方法和类名::实例方法。通过示例展示了如何将方法引用应用于lambda表达式,简化代码并提高可读性。同时,提供了自定义函数式接口和测试类来进一步说明其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方法引用

  • 方法引用
  • 是lambda表达式的进一步简写,存在三种形式
    • 1.类名::静态方法 ,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
    • 2.实例名::方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
    • 3.类名::实例方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。且 只有两个参数,并且参数1作为调用者,参数2作为参数,且顺序不能改变

2.定义接口函数与测试类

在这里插入图片描述

3.三种引用形式与简写

在这里插入图片描述

4.完整源码

import java.util.function.Consumer;

/**
 * 方法引用
 * 是lambda表达式的进一步简写,存在三种形式
 * 1.类名::静态方法 ,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
 * 2.实例名::方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
 * 3.类名::实例方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。且 只有两个参数,并且参数1作为调用者,参数2作为参数,且顺序不能改变
 */
public class _Test {

    public static void main(String[] args) {

        //
        //1.类名::静态方法 ,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
        Consumer<Object> c1 = (a) -> {
            Method.test2(a);
        };
        //1.简写
        Consumer<Object> c1_ = Method::test2;


        //
        //2.实例名::方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。
        Method method = new Method();
        Consumer<Object> c2 = (a) -> {
            method.test1(a);
        };
        //2.简写
        Consumer<Object> c2_ = method::test1;


        //
        //3.类名::实例方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。且只有两个参数,并且参数1作为调用者,参数2作为参数,且顺序不能改变
        Face03<Method, String> face03 = (t, r) -> {
            t.test1(r);
        };
        //3.简写
        Face03<Method, String> face03_ = Method::test1;

    }

    /**
     * 自定义函数式接口
     *
     * @param <T>
     * @param <R>
     */
    @FunctionalInterface
    interface Face03<T, R> {
        void test1(T t, R r);
    }

    /**
     * 定义测试类
     */
    static class Method {


        public void test1(Object a) {
        }

        public static void test2(Object a) {
        }

    }

}

《目录:Java基础》

《目录:JDK1.8新特性》

《幕》

  • 留白 —<老吉>
  • ~ 今 ~ ❀ ~ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑鱼村王师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值