lambda简化过程

/**
* lambda表达式(简化代码,去除不必要的代码,只保留核心代码)
* 必须是函数式接口:任意接口且只有一个抽象方法,就是函数式接口。例如Runnable接口
* lambda简化过程:实现类->静态内部类->局部内部类->匿名内部类->lambda
*/
public class TestLambda {
// 3.静态内部类
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda 2");
}
}
public static void main(String[] args) {
new Like1().lambda();
new Like2().lambda();
// 4.局部内部类
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda 3");
}
}
new Like3().lambda();
// 5.匿名内部类(没有类名,必须借助接口或父类)
new ILike() {
@Override
public void lambda() {
System.out.println("I like lambda 4");
}
}.lambda();
// 6.lambda简化
ILike like = () -> System.out.println("I like lambda 5");
like.lambda();
//---带有参数和返回值:(无参需加(),单参可直接写参数,多参需(a,b),方法体只有一条语句可直接写,多条语句需写在{}内)
//*多参数要么都带参数类型(int a,int b),要么都不带(a,b),否则(int a,b)会报错
TestLambda2 lambda2 = name -> {
System.out.println("hello " + name);
return true;
};
lambda2.hello("小明");
}
}
// 1.定义一个函数式接口
interface ILike{
void lambda();
}
// 2.实现类
class Like1 implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda 1");
}
}
//----------------------------------------------
interface TestLambda2{
boolean hello(String name); // 带有参数和返回值
}
posted @ 2021-12-28 09:22  迷路小孩  阅读(37)  评论(0)    收藏  举报