随笔 - 172  文章 - 0  评论 - 0  阅读 - 11939

Java 多线程(四)Lambda表达式

Lamda表达式

λ希腊字母表中排序第十一位的字母,英语名为Lambda

避免匿名内部类定义过的多

其实质属于函数式编程的概念

理解函数式接口是学习Java8 Lambda表达式的关键所在

函数式接口定义:

  1.任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口

  2.对于函数式接口,我们可以通过Lambda表达式来创建该接口的对象。

复制代码
//推导Lambda表达式
public class TestLambda1 {
    //3.静态内部类
    static class Like2 implements ILike{
        @Override
        public void Lambda() {
            System.out.println("I like lambda2!");
        }
    }

    public static void main(String[] args) {
        ILike like = new Like();
        like.Lambda();

        like = new Like2();
        like.Lambda();

     //4.局部内部类
        class Like3 implements ILike{
            @Override
            public void Lambda() {
                System.out.println("I like lambda3!");
            }
        }

        like = new Like3();
        like.Lambda();

    //5.匿名内部类
            like = new ILike() {
                @Override
                public void Lambda() {
                    System.out.println("I like lambda4!");
                }
            };
            like.Lambda();

    //6.用Lambda简化
        like = ()->{
            System.out.println("I like lambda5!");
        };
        like.Lambda();
    }
}
//1.定义函数式接口
interface ILike{
    void Lambda();
}
//2.实现类
class Like implements ILike{
    @Override
    public void Lambda() {
        System.out.println("I like lambda!");
    }
}
复制代码

1.上面推导输出结果                                                2.下面简化输出结果

                       

复制代码
public class TestLambda2 {
public static void main(String[] args) {
ILove love = null;
//1.原始
love = (String person)->{
System.out.println(person + "I love you!");
};
love.love("呜呜");

//2.简化去参数类型
love = (person)->{
System.out.println(person + "I love you!");
};
love.love("公子");

//3.简化去括号
love = person->{
System.out.println(person + "I love you!");
};
love.love("大侠");

//4.简化去花括号(此简化前提是方法体内只有一行代码,否则不能简化)
love = person->System.out.println(person + "I love you!");
love.love("随哥");
}
}
interface ILove{
void love(String person);
}
复制代码

如果括号内有多个参数,也可以去掉参数类型,但是必须加上括号,不能像只有一个参数一样可以去掉括号

 

posted on   键盘敲烂的朱  阅读(197)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示