package com.limmg.huawei.lambda;
import lombok.extern.slf4j.Slf4j;
/*lambda表达式的演变过程
该实现的接口只有一个抽象方法,就是说该实现类要去实现函数式接口
从实现类--静态内部类--局部内部类--匿名内部类--lambda表达式*/
@Slf4j
public class LambdaEvolution {
public static void main(String[] args) {
// 实现类:LambdaImpl 实现 OneParameterOneReturn
LambdaImpl lambda = new LambdaImpl();
String test = lambda.test(666);
log.info(test);
// 静态内部类
StaticLambda staticLambda = new StaticLambda();
log.info(staticLambda.test(777));
// 局部内部类 局部内部类是指在一个方法中定义的内部类
class LambdaInnerImpl implements OneParameterOneReturn {
@Override
public String test(int a) {
return "局部内部类返回a:" + a;
}
}
LambdaInnerImpl lambdaInner = new LambdaInnerImpl();
log.info(lambdaInner.test(888));
// 匿名内部类
OneParameterOneReturn oneParameterOneReturn = new OneParameterOneReturn() {
@Override
public String test(int a) {
return "匿名内部类返回a:" + a;
}
};
log.info(oneParameterOneReturn.test(999));
// lambda表达式
OneParameterOneReturn oneParameterOneLambda = (a) ->{
return "lambda表达式返回a:" + a;
};
log.info(oneParameterOneLambda.test(111));
}
// 静态内部类
static class StaticLambda implements OneParameterOneReturn {
@Override
public String test(int a) {
return "静态内部类返回a:" + a;
}
}
}
lambda表达式的演变过程
最新推荐文章于 2024-07-29 14:22:26 发布