设为首页 加入收藏

TOP

初识Lambda表达式
2023-07-26 08:18:32 】 浏览:645
Tags:初识 Lambda

interface Eatable {
    void eat();
}


interface Flyable {
    void fly(String s);
}


interface Addable {
    int add(int a, int b);
}


public class LambdaDemo {
    //调用该方法需要Eatable对象
    public void eat(Eatable e) {
        System.out.println(e);
        e.eat();
    }
 //调用该方法需要Flyable对象
    public void drive(Flyable f) {
        System.out.println("我正在驾驶:" + f);
        f.fly("大晴天");
    }
 //调用该方法需要Addble对象
    public void test(Addable a) {
        System.out.println("1加1等于:" + a.add(1, 1));
    }


    public static void main(String[] args) {
        LambdaDemo ld = new LambdaDemo();
        ld.eat(() -> System.out.println("吃苹果"));
        ld.drive(s -> {
            System.out.println("今天天气是:" + s);
            System.out.println("开车很爽");
        });
        ld.test((a, b) -> a + b);
    }
}


从上面语法格式中可以看出,Lambda表达式就相当于一个匿名方法。它由三部分组成:


省略写法:


从代码中还可以看出,Lambda表达式实际上将会被当成一个“任意类型”的对象,需要当成何种类型,取决于运行环境的需要。


? Lambda表达式的类型也被称为“目标类型”,Lambda表达式的目标类型必须是“函数式接口”。函数式接口代表只包含一个抽象方法的接口。函数式接口可以包含多个默认方法、类方法,但只能声明一个抽象方法。


? Lambda表达式限制:


其实,Lambda表达式的结果就是被当成对象,所以在程序中完全可以使用Lambda表达式进行赋值。


? 方法引用和构造器引用都需要使用两个英文冒号。如表:


举个例子


相同点:


区别:


核心接口大致分为以下四类:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何在Python中读写文件 下一篇深入理解Python中的列表推导式(L..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目