Java 8 特性: Lamda 学习随想

/ 0评 / 0

最近在学习基于遗传编程的框架基准问题测试时,运用到的Jenetics框架。很多函数的调用用到了Lambda表达式,并且使代码风格非常简洁。 今天想在这里简单的分享一下,学习过程中得到的一些思考。

基本格式:

() 形参列表: 要实现的接口中唯一的抽象方法 所对应的形参列表

 -> 要做的事情:固定格式 

 {} 方法体     被重写的方法体的固定格式(一定条件下可以不写)

适用前提: 有一个接口 并且接口中有且仅有一个抽象方法

简单的代码实现

  1. 准备一个函数式接口
public interface Eat {
    void eat(String food);
}

2. 实现主方法

public class EatTest {
    public static void main(String[] args) {
        // 匿名内部类 实现
        runEat(new Eat() {
            @Override
            public void eat(String food) {
                System.out.println("匿名内部类 爱吃:"+food);
            }
        });
        // Lambda 表达式 实现
        runEat((food)->{
            System.out.println("Lambda 爱吃: "+food);
        });

        // 省略版 Lambda 实现
        // 参数的类型可以省略
        //如果参数有且仅有一个 () 可以省略不写
        //如果代码块的语句只有一条,可以省略大括号和分号 如果有return 则 一起删除
        runEat(food -> System.out.println("Lambda 省略版喜欢吃: "+food));
    }

    private static void runEat(Eat e){
        e.eat("大虾米");
    }
}

输出结果:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注