使用FunctionalInterface提供工厂方法
2024-10-07 07:24:19
1.
首先提供User类
public class User { private int id;
private String name; public User(int id, String name) {
this.id = id;
this.name = name;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
创建UserFactory 作为User的工厂类,是一个函数式接口
import java.util.ArrayList;
import java.util.List; public class ConstrMethodRef { @FunctionalInterface
interface UserFactory<U extends User>{
U create(int id, String name);
} static UserFactory<User> uf = User::new; public static void main(String[] args) { List<User> users = new ArrayList<User>();
for(int i=0; i<10; i++) {
users.add(uf.create(i, "billy" + Integer.toString(i)));
}
users.stream().map(User::getName).forEach(System.out::println); } }
在创建UserFactory实例后,对UserFactory.create()的调用,都会委托给User的实际构造函数进行,从而创建User对象实例。
最新文章
- Android Studio 快捷键
- 关于git的学习
- 如何给ZenCart网站livezilla客服系统?
- mybatis新增数据后获取自增主键
- java基础-jdbc——三种方式加载驱动建立连接
- db2常用名词
- highcharts 饼图显示数据比例如何保留二位小数
- <;php>;PDO用法二
- PHP开发微信模版消息换行的问题
- 图解java中的bytebuffer
- why?
- 学习 Spring (十六) AOP API
- python 接口自动化测试(五)其他-认证&;代理&;超时配置
- 购物车存到cookie
- LeetCode 973 K Closest Points to Origin 解题报告
- 2015.4.21第一篇cnblog文章
- java后台技术
- Doxygen自动文档生成工具在Eclipse中的集成及使用举例
- JDK1.8源码Collections
- 001_shell经典案例