最近在学习基于遗传编程的框架基准问题测试时,运用到的Jenetics框架。很多函数的调用用到了Lambda表达式,并且使代码风格非常简洁。 今天想在这里简单的分享一下,学习过程中得到的一些思考。
基本格式:
() 形参列表: 要实现的接口中唯一的抽象方法 所对应的形参列表
-> 要做的事情:固定格式
{} 方法体 被重写的方法体的固定格式(一定条件下可以不写)
适用前提: 有一个接口 并且接口中有且仅有一个抽象方法
简单的代码实现
- 准备一个函数式接口
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("大虾米");
}
}
输出结果:
