Java 泛型 工厂模式

使用泛型的类中,要实例化一个泛型类的对象时,不能使用new,可以使用class.newInstance(),但是该类刚好没有默认无参的构造方法,也会出错。所以最好的方法是用工厂模式。
IFactory.java:


/**
 * 工厂接口,包含create方法
 * @author fhp
 *
 * @param 
 */
public interface IFactory {
	T create();
}

Foo.java:


/**
 * 成员带有泛型的类
 * @author fhp
 *
 * @param 
 */
public class Foo {
	private T x;
	//构造方法传入一个实现IFactory的工厂
	public > Foo(F factory)
	{
		x=factory.create();
	}
	public T get()
	{
		return x;
	}
}

StringFactory.java:


/**
 * 工厂实现类
 * @author fhp
 *
 */
public class StringFactory implements IFactory {
	@Override
	public String create() {
		// TODO Auto-generated method stub
		return "String Factory";
	}
}

使用:


		Foo foo=new Foo(new StringFactory());
		System.out.println(foo.get());

© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注