时间: 2023-05-03 【学无止境】 阅读量:共743人围观
简介 Lambda 表达式是一个匿名函数,我们可以把 lambda 表达式理解为一段可以传递的代码(将代码段像数据一样传递)。使用它可以写出更简洁, 更灵活的代码。
- Lambda表达式 -> 函数 - 使代码变得简洁、紧凑 - 函数式编程 - 函数是“第一等公民” - 可以赋值给变量 - 可以作为(其它函数的)参数进行传递 - 可以作为(其它函数的)返回值
Factory factory = new SubClass(); // 多态
User user1 = (User) factory.getObject();
// 匿名内部类
factory = new Factory(){
@Override
public Object getObject(){
return new User("zhangsan", 18);
}
};
User user2 = (User) factory.getObject();
// Lambda表达式
factory = () -> {
return new User("zhangsan", 18);
}
User user3 = (User) factory.getObject();
// Lambda作为参数进行传递
User user4 = getUserFormFactory(()->{
return new User("zhangsan", 19);
}, "User")
// Lambda作为函数的返回值
factory = getFactory();
factory.getObject();
public static User getUserFormFactory(Factory factory,String beanName){
Object obj = factory.getObject();
if(obj != null && obj.getClass().getSimpleName().equals(beanName)){
return (User)obj;
}
}
public static Factory getFactory(){
return () -> {
return new User("wangwu",20)
}
}