前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多线程笔记(三)Lamda表达式,如何推导出这个表达式的书写方法

多线程笔记(三)Lamda表达式,如何推导出这个表达式的书写方法

作者头像
一写代码就开心
发布2021-08-24 10:31:06
2490
发布2021-08-24 10:31:06
举报
文章被收录于专栏:java和python

为什么要使用这个表达式

总之就是为了简化我们的代码

什么叫做函数式接口

定义

记住:必须是一个接口里面只有一个抽象方法

推到出lamda表达式

必须是函数式接口 才可以使用这个表达式

最开始写代码

之前我们写代码,是先写一个接口,写一个类实现这个接口,重写里面的方法。 在主函数里面创建这个类的对象,执行里面的方法

代码语言:javascript
复制
public class TestLambda {
    public static void main(String[] args) {
        lambdaclass lambdaclass = new lambdaclass();
        lambdaclass.lambda();
    }
}


interface like{
    void lambda();
}

class lambdaclass implements like{
    @Override
    public void lambda() {
        System.out.println("jjjjjjjjj");
    }
}

静态内部类

现在我们直接在主函数的类里面写一个静态内部类

也就是直接在类里面再创建一个类

代码语言:javascript
复制
public class TestLambda {

    static class like2 implements like{
        @Override
        public void lambda() {
            System.out.println("pppppppp");
        }
    }


    public static void main(String[] args) {

        like2 like2 = new like2();
        like2.lambda();
    }
}


interface like{
    void lambda();
}

局部的内部类

我们还可以在主函数方法里面 写一个局部的内部类

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {
         class like2 implements like{
            @Override
            public void lambda() {
                System.out.println("pppppppp");
            }
        }
        like2 like2 = new like2();
        like2.lambda();
    }
}


interface like{
    void lambda();
}

匿名内部类

匿名内部类 也就是借助接口 或者 父类

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {

       like yuyu =new like(){
            @Override
            public void lambda() {
                System.out.println("与");
            }
        };

        yuyu.lambda();


    }
}


interface like{
    void lambda();
}

lambda

也就是对象不要了,方法名字不要了,只要方法里面的具体实现 接口 接一下这个

代码语言:javascript
复制
public class TestLambda {
    public static void main(String[] args) {
       like yuyu =()->{
                System.out.println("与");
        };
        yuyu.lambda();
    }
}

interface like{
    void lambda();
}

将参数类型简化掉

如果接口里面的方法有参数,那么我们可以简化掉参数类型

有参数类型的代码是:

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {

       like yuyu =(int a) ->{
                System.out.println(a);
        };

        yuyu.lambda(2);


    }
}


interface like{
    void lambda(int a);
}

简化掉的参数类型是:

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {

去掉参数里面的参数类型
       like yuyu =( a) ->{
                System.out.println(a);
        };

        yuyu.lambda(2);


    }
}


interface like{
    void lambda(int a);
}

将括号也去掉

前提是有一个参数,如果多个参数,不可以将括号去掉

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {

       like yuyu = a ->{
                System.out.println(a);
        };

        yuyu.lambda(2);


    }
}


interface like{
    void lambda(int a);
}

将花括号去掉

前提是方法里面只有一句话输出

代码语言:javascript
复制
public class TestLambda {

    public static void main(String[] args) {

       like yuyu = (a,b) -> System.out.println(a+b);
        yuyu.lambda(2,5);
    }
}


interface like{
    void lambda(int a,int b);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要使用这个表达式
  • 什么叫做函数式接口
  • 推到出lamda表达式
    • 最开始写代码
      • 静态内部类
        • 局部的内部类
          • 匿名内部类
            • lambda
              • 将参数类型简化掉
              • 将括号也去掉
              • 将花括号去掉
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档