前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Java] Lambda表达式总结

[Java] Lambda表达式总结

原创
作者头像
用户3702315
修改2021-03-29 17:37:44
2640
修改2021-03-29 17:37:44
举报
文章被收录于专栏:安卓开发
简介

Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法。

相关

@FunctionalInterface 是修饰函数式接口的,要求接口中的抽象方法只有一个,这个注解往往会和 lambda 表达式一起出现。

参考

https://www.cnblogs.com/haixiang/p/11029639.html

案例
代码语言:txt
复制
@FunctionalInterface
public  interface NoReturnMultiParam {
    void method(int a, int b);
}
// ---------------------------------------------------------------------------------
NoReturnMultiParam noReturnMultiParam = (int a, int b) -> {
    System.out.println("NoReturnMultiParam param:" + "{" + a +"," + + b +"}");
};
noReturnMultiParam.method(6, 8);
// ---------------------------------------------------------------------------------
NoReturnMultiParam lamdba1 = (a, b) -> {
    System.out.println("简化参数类型");
}; 
lamdba1.method(1, 2);
// ---------------------------------------------------------------------------------
NoReturnMultiParam lambda3 = (a, b) -> println("只有一条语句则可以省略大括号"); 
lambda3.method();
代码语言:txt
复制
@FunctionalInterface
public  interface ReturnOneParam {
    int method(int a);
}
// ---------------------------------------------------------------------------------
ReturnOneParam returnOneParam = (int a) -> {
    System.out.print("Lambda");
    return  1;
};
// ---------------------------------------------------------------------------------
ReturnOneParam returnOneParam = (a) -> {
    System.out.print("省略类型");
    return  1;
};
// ---------------------------------------------------------------------------------
ReturnOneParam returnOneParam = a -> {
    System.out.print("如果只有一个参数则可以省略参数小括号");
    return  1;
};
// ---------------------------------------------------------------------------------
System.out.print("只有return则可以省略return和大括号")
ReturnOneParam returnOneParam = a -> a + 3;
案例
代码语言:txt
复制
public class Exe1 {
    public static void main(String[] args) {
        ReturnOneParam lambda1 = a -> doubleNum(a);
        System.out.println(lambda1.method(3));

        // lambda2 引用了已经实现的 doubleNum 方法
        ReturnOneParam lambda2 = Exe1::doubleNum;
        System.out.println(lambda2.method(3));

        Exe1 exe = new Exe1();
        // lambda4 引用了已经实现的 addTwo 方法
        ReturnOneParam lambda4 = exe::addTwo;
        System.out.println(lambda4.method(2));
    }

    public static int doubleNum(int a) {
        return a * 2;
    }

    public int addTwo(int a) {
        return a + 2;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 相关
  • 参考
  • 案例
  • 案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档