1. lambda初体验

news/2024/9/23 10:05:20/
  1. 首先声明一个函数式接口,就只接口内只有一个抽象方法
java">//函数式接口
public interface Factory {Object getObject();}
  1. 接口实现类
java">public class SubClass implements Factory {@Overridepublic Object getObject() {return new User();}}
  1. User类
java">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. 测试类:
java">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.ppmy.cn/news/1463697.html

相关文章

详解 QtAndroid::requestPermissionsSync

QtAndroid::requestPermissionsSync 是 Qt 框架中用于在 Android 平台上同步请求运行时权限的函数。这个函数在 Qt for Android 的某个更新中被引入,以更好地支持 Android 6.0(API 级别 23)及以上版本引入的动态权限管理系统。下面是对该函数…

swiftui基础组件Image加载图片,以及记载gif动图示例

想要在swiftui中展示图片,可以使用Image这个组件,这个组件可以加载本地图片和网络图片,也可以调整图片大小等设置。先大概看一下Image的方法有哪些可以用。 常用的Image属性 1.调整图像尺寸: 使用 resizable() 方法使图像可调整…

Linux 系统的目录和文件管理

一、目录结 目录 一、目录结构和每个目录的作用 二、基本命令 1.分页查看more tail 命令 wc命令grep | 管道符 打包和解包 以及vim的用法 vim 文本编辑器单行替换 一、目录结构和每个目录的作用 二、基本命令 1.分页查看more tail 命令 wc命令 grep | 管道符 …

shell中编写备份数据库脚本(使用mysqldump工具)

mysqldump备份 目录 mysqldump备份 分库备份 分表备份 利用自带工具mysqldump 实现数据库分库分表备份。 要想知道需要备份哪些数据库,就得先列出来 mysql -uroot -pOpenlab123! -N -e show databases | egrep -on_schema|mysql|performance_schema|sys" …

Linux漏洞SSL/TLS协议信息泄露漏洞(CVE-2016-2183) - 非常危险(7.5分) 解决办法!升级openssl

漏洞情况 详细描述 TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 TLS, SSH, IPSec协商及其他产品中使用的IDEA、DES及Triple DES密码或者3DES及 Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击&…

【数据结构】排序详解(希尔排序,快速排序,堆排序,插入排序,选择排序,冒泡排序)

目录 0. 前情提醒: 1. 插入排序 1.1 基本思想: 1.2 直接插入排序 实现步骤: 动图演示: 特性总结: 代码实现: 1.3 希尔排序(缩小增量排序) 基本思想: 步骤演示&…

如果jupyter notebook不能实现网页自动跳转,参考下面的链接

一招搞定Jupyter-notebook命令行打开之后不能自动跳转浏览器_一招搞定jupter notebook命令行打开之后-CSDN博客

MongodDB实现用户名密码远程登录的配置步骤

1. 引入 根据参考1,在CentOS7上搭建了MongodDB6.0。 搭建后,参考2中的步骤,进行配置,就能使用mongosh命令来连接mongo,也可以实现远程登录。 但是,此时不需要密码,就能连接上MongoDB&#xff0…