当前位置: 首页 > news >正文

1. lambda初体验

  1. 首先声明一个函数式接口,就只接口内只有一个抽象方法
//函数式接口
public interface Factory {Object getObject();}
  1. 接口实现类
public class SubClass implements Factory {@Overridepublic Object getObject() {return new User();}}
  1. User类
public class User {private String name;private int age;public User() {}public User(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}
  1. 测试类:
public class LambdaTest {public static void main(String[] args) {//1.子类实现接口Factory factory = new SubClass();User user = (User)factory.getObject();System.out.println(user);//2.匿名内部类factory = new Factory() {@Overridepublic Object getObject() {return new User("zhangsan",33);}};User object = (User)factory.getObject();System.out.println(object);//3.lambda表达式factory = () -> {return new User("李斯特",33);};Object object1 = factory.getObject();System.out.println(object1.toString());System.out.println("-----------------------------------------");//4.使用lambda表达式,做为参数传递User user4 = getUserFromFactory(() -> {return new User("wangwuxxx", 223);}, "User");System.out.println(user4);System.out.println("-----------------------------------------");//5. 使用lambda做为返回值User user5 = (User)getFactory().getObject();System.out.println(user5);}public static User getUserFromFactory(Factory factory,String beanName){Object obj = factory.getObject();if(obj != null && obj.getClass().getSimpleName().equals(beanName)){return (User) obj;}return null;}public static Factory getFactory(){return () -> { return new User("dingxx",33); };}
}
http://www.lryc.cn/news/355598.html

相关文章:

  • C#之显示转换
  • 汇编原理(三)编程
  • [MySQL数据库] Java的JDBC编程(MySQL数据库基础操作完结)
  • 绿色瓶装水“暗战”竞争越发激烈,华润饮料谋上市同时多地扩产能
  • C语言之指针详解(4)
  • 0基础学习小红书博主IP特训营,37天 教你从小白到KOL(13节)
  • 【openlayers系统学习】3.1-3.2彩色GeoTIFF图像渲染
  • 前端自动将 HTTP 请求升级为 HTTPS 请求
  • 辅助驾驶ADAS功能算法介绍
  • Docker 安装kingbase V8r6
  • Python 应用打包成 APK【全流程】
  • jmeter之MD5加密接口请求教程
  • R18 NTN中的RACH-less HO
  • QT使用gsoap获取手机归属地
  • 抖音本地生活服务商入驻指南分享!
  • 【量算分析工具-水平距离】GeoServer改造Springboot番外系列四
  • vs2019 c++20 规范的 STL 库的智能指针 shared、unique 、weak 及 make_** 函数的源码注释汇总,和几个结论
  • 【大模型】 基于AI和全球化进程的权衡:开源大模型与闭源大模型
  • 强化学习——学习笔记
  • NAT简介
  • 联想凌拓 NetApp AFF C250 全闪存存储助力丰田合成打造数据新“引擎”
  • 红队技巧:仿冒Windows登录
  • 821. 字符的最短距离 - 力扣
  • BI工具如何为金融行业带来变革?金融行业营销管理策略大揭秘
  • 操作系统 - 计算机系统概述
  • [论文笔记]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS
  • []下标的意义
  • 去重复记录和排序——kettle开发09
  • 中创算力与中国移动初步达成战略合作意向,共同构建智能生态圈!
  • 基础—SQL—DML(数据操作语言)插入数据