Java笔记---生成器Generator
来源:互联网 发布:叽萝捏脸数据 编辑:程序博客网 时间:2024/05/16 11:30
一、前言
和前一篇博文所述的迭代器 Iterator 不同,本文所述为生成器 Generator。这两者有很大不同。迭代器是用于遍历容器中的元素的,Java标准库中是有 Iterator 接口及其实现的;但生成器是用于创建对象的,Java标准库中并没有提供 Generator 接口及其实现。
[注:要注意将此处的生成器 Generator 和设计模式中的生成器模式(也就是建造者模式)区分,二者是不同的]
二、介绍
- 生成器(Generator)是一种专门用于创建对象的类
- 它实际上是工厂方法模式的一种应用,也是泛型应用于接口的一种
- 使用生成器创建新对象时,不需要任何参数就可以创建对象—>这也是与工厂方法模式的区别,工厂方法一般需要参数
- 一般,生成器只定义一个方法,该方法专门用于产生新对象
三、Generator 接口
Java 标准库中是没有包含 Generator 接口的,因此生成器是需要自己定义的。
[Generator]
/** - 生成器接口 - @author johnnie - @param <T> */public interface Generator<T> { /** - 用以产生新对象 - @return */ public T next();}
四、生成器的使用
[实例代码]
/** - Generator 的实现类 - @author johnnie * */public class PersonGenerator implements Generator<Person> { private Class[] types = new Class[]{Person.class}; public PersonGenerator() { } @Override public Person next() { try { // 利用反射生成 Person 对象 return (Person) types[0].newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { PersonGenerator generator = new PersonGenerator(); Person person = generator.next(); person.setId(0); person.setName("johnnie"); person.setSex("Man"); System.out.println(person); }}
[输出]
Person [id=0, name=johnnie, sex=Man]
1 0
- Java笔记---生成器Generator
- Python学习笔记 - 生成器generator
- python3学习笔记:生成器generator
- python学习笔记--generator生成器
- rapid-generator JAVA代码生成器
- Java 生成器 rapid-generator 配置
- 08-python学习笔记-生成器:generator
- 生成器 generator
- 生成器generator
- 生成器generator
- 生成器generator
- Java 代码生成器 rapid-generator 配置
- Java 生成器 freemarker+rapid-generator 配置
- Python学习笔记(10)-生成器generator和迭代器Iterator
- 我的python3基础笔记之 【生成器 generator】 05
- Hibernate主键生成器generator
- [Python]生成器(generator)
- Load Generator负载生成器
- js判断鼠标进入容器的方向
- 《Cocos2d-x游戏开发实战精解》学习笔记1--在Cocos2d中显示图像
- OpenGL: 深度冲突(Z-Finghting or Depth Fighting)的解决
- python基础学习一 数据类型和变量
- linux iometer io
- Java笔记---生成器Generator
- 集训队专题(5.1)1001 Maximum Clique
- 信息资源管理
- MongoDB数组修改器更新数据
- 秒杀系统架构分析与实战
- Linux iptables
- 排序算法
- 设计模式-状态
- CodeForces 626E Simple Skewness(二分)