首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Lambda表达式(三)方法引入

Lambda表达式(三)方法引入

作者头像
高大北
发布2022-06-14 20:24:23
发布2022-06-14 20:24:23
26600
代码可运行
举报
运行总次数:0
代码可运行

什么是方法引入

方法引入:需要结合lambda表达式能够让代码变得更加精简。 1.匿名内部类使用 2.Lambda调用匿名内部类 3.方法引入 方法引入 1.静态方法引入: 类名::(静态)方法名称 2.对象方法引入 类名:: 实例方法名称 3.实例方法引入 new对象 对象实例::方法引入 4.构造函数引入 类名::new

需要遵循一个规范: 方法引入 方法参数列表、返回类型与函数接口参数列表与返回类型必须 要保持一致。

Lambda: 匿名内部类使用代码简洁问题。

类型 语法 对应lambda表达式 构造器引用 Class::new (args) -> new 类名(args) 静态方法引用 Class::static_method (args) -> 类名.static_method(args) 对象方法引用 Class::method (inst,args) -> 类名.method(args) 实例方法引用 instance::method (args) -> instance.method(args)

方法引用提供了非常有用的语法,可以直接引用已有的java类或对象的方法或构造器。方法引用其实也离不开Lambda表达式, 与lambda联合使用 ,方法引用可以使语言的构造更加紧凑简洁,减少冗余代码。

方法引用提供非常有用的语法,可以直接引用已有的java类或者对象中方法或者构造函数, 方法引用需要配合Lambda表达式语法一起使用减少代码的冗余性问题。

静态方法引入

代码语言:javascript
代码运行次数:0
运行
复制
    public static void main(String[] args) {
//      MyFunctionalInterface myFunctionalInterface = () -> System.out.println("Hello World");
//        myFunctionalInterface.add();
        MyFunctionalInterface myFunctionalInterface = Test04::getStaticMethod;
        myFunctionalInterface.add();
    }
    /**
     * 静态方法引入
     */
    public static void getStaticMethod() {
        System.out.println("我是 getMethod");
    }

方法引入

代码语言:javascript
代码运行次数:0
运行
复制
    public static void main(String[] args) {

       MyFunctionalInterface myFunctionalInterface= Test014::add;
    }

    private static void add(String a) {
        System.out.println("Hello World");
    }

构造函数引入

代码语言:javascript
代码运行次数:0
运行
复制
    public static void main(String[] args) {
        MyFunctionalInterface aNew = UserEntity::new;

    }
    @FunctionalInterface
public interface MyFunctionalInterface {
    UserEntity userEntity();

}

对象方法引入

代码语言:javascript
代码运行次数:0
运行
复制
public class Test014 {
    public static void main(String[] args) {
//        MyFunctionalInterface myFunctionalInterface = new MyFunctionalInterface() {
//
//            @Override
//            public String userEntity(Test014 test014) {
//                return test014.getStaticMethod();
//            }
//        };
        MyFunctionalInterface myFunctionalInterface = Test014::getStaticMethod;

    }
    /**
     * 静态方法引入
     */
    public  String getStaticMethod() {
        System.out.println("我是 getMethod");
        return "我是 getMethod";
    }


}
@FunctionalInterface
public interface MyFunctionalInterface {
    String userEntity(Test014 test014);

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是方法引入
    • 静态方法引入
    • 方法引入
    • 构造函数引入
    • 对象方法引入
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档