您好,欢迎访问一九零五行业门户网

Java笔记之如何使用生成器Generator

一、前言
和前一篇博文所述的迭代器 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]
以上就是java笔记之如何使用生成器generator的详细内容。
其它类似信息

推荐信息