黑马程序员技术交流社区
标题:
意外收获,竟然用着用着就用会了泛型了。。
[打印本页]
作者:
彭昆
时间:
2013-1-4 22:30
标题:
意外收获,竟然用着用着就用会了泛型了。。
public class ObjectFactory {
private static ResourceBundle rb;
static{
rb=ResourceBundle.getBundle("factory");
}
private static ObjectFactory instance=new ObjectFactory();
private ObjectFactory(){}
public static ObjectFactory getInstance(){
return instance;
}
//根据配置文件返回不同的对象,当然调用的时候得传个配置文件中的key过来
public <T>T getUserDaoImpl(String type){
try {
return (T) Class.forName(rb.getString(type)).newInstance();
} catch (Exception e) {
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
}
}
复制代码
作者:
希望的曙光
时间:
2013-1-5 01:48
你这是工厂模式和单例模式
泛型混在一起有点晕,那位同给解释一下
作者:
彭昆
时间:
2013-1-5 22:28
希望的曙光 发表于 2013-1-5 01:48
你这是工厂模式和单例模式
泛型混在一起有点晕,那位同给解释一下
这个就是根据所传的type动态返回实例,我们的这个type其实就是properties文件中的key,这个key对应一个类的包名加类名,所以我想要哪个类的实例就可以传个type,然后通过反射动态返回即可。如果不用泛型,那么必须写多个对应的返回不同类型对象的方法。但这些方法99%相同,只是返回对象不同,所以可使用泛型。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2