利用泛型避免工厂方法强制类型转换
来源:互联网 发布:500万双色球过滤软件 编辑:程序博客网 时间:2024/06/04 00:53
1. 首先要有一个配置文件beans.properties:
memberDao=com.gathershell.daoImpl.MemberDaoImpl
2. Java代码:
public class BeanUtil {
private static Properties props;
static{
props=new Properties();
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("beans.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static <T> TgetBean(Class<T> beanClass){
String name=((Class)beanClass).getSimpleName();
StringbeanName=name.substring(0, 1).toLowerCase()+name.substring(1);
T bean = null;
try {
bean = (T)Class.forName(props.getProperty(beanName)).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return bean;
}
}
上面首先读取配置文件,被调用时创建出所需对象。
3. 客户端调用:
public void memberDaoTest(){
MemberDao memberDao=BeanUtil.getBean(MemberDao.class);
System.out.println(memberDao);
}
不必强制类型转换。
4. 约定
上面的代码要能正常运行,配置文件的key必需是所要类简单名称的首字母小写。如类MemberDao,在配置文件中key为memberDao.
- 利用泛型避免工厂方法强制类型转换
- Effective C# Item28:避免强制类型转换
- C++强制类型转换方法
- 使用泛型方法在Java中安全地进行强制类型转换
- 关于强制类型转换的若干方法
- String类型强制转换的方法
- 关于强制类型转换:强制类型转换
- 利用指针进行类型强制转换(c指针详解)
- 类型转换&&类型强制转换
- 类型转换&&类型强制转换
- 泛型在强制类型转换中的应用
- 如果类型转换无可避免,那么应该尽可能用as运算符,而不是强制转换
- object类型强制转换成Int类型的方法
- C++命名型的强制类型转换
- C++命名型的强制类型转换 .
- 类型转换(向下强制)
- c++强制类型转换
- 强制类型转换
- linux命令
- hdu1305(字典树)
- linux常用命令
- sublime 快捷键
- 微软正在为Windows移动系统研究一款“Siri”
- 利用泛型避免工厂方法强制类型转换
- mac下修改hosts
- ubuntu下Android SDK中adb找不到的解决方案
- poj 1836 Alignment
- 网易面试题(社招)
- java equals探索
- 鸟哥私房菜网址
- 多线程
- 阿里2014届校园招聘面经