使用泛型解决需要动态返回类型的问题
2013-08-14 15:57
316 查看
下午的工厂模式需要解决一个问题,需要根据传入的类型返回相应的数据类型的对象,因为之前的方案需要返回Object这个万能对象,但是弊端就是在使用工厂模式的时候,进行向下转型,为了规避这个问题,可以使用泛型,来解决动态返回类型的问题,代码如下:
public static
<T> T getService(Class<T> clazz,String serviceName){
try {
return
(T)ServiceFactory.class.forName(properties.getProperty(serviceName)).newInstance();
} catch (Exception e) {
//deal exception
System.out.println("Factory error!!!\n"+e.getMessage());
}
return null;
}
public static
<T> T getService(Class<T> clazz,String serviceName){
try {
return
(T)ServiceFactory.class.forName(properties.getProperty(serviceName)).newInstance();
} catch (Exception e) {
//deal exception
System.out.println("Factory error!!!\n"+e.getMessage());
}
return null;
}
相关文章推荐
- 使用泛型解决需要动态返回类型的问题
- 容易被忽略的细节(2):使用泛型类和泛型方法解决【动态类型】问题
- SpringBank 开发日志 重新设计Action调用Service的参数传递 使用泛型解决类型转换问题
- 解决,当列表进入详情页的时候,操作完使用浏览器的返回,状态依然是之前的,需要手动刷新的问题
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 关于如何使用反射声明一个泛型类型变量(泛型参数是动态的)的问题
- Android中通过泛型解决findViewById需要强制类型转换的问题
- 解决 ”不允许在查询中显式构造实体类型“问题及使用其他方法实现返回 List<Model对象>或者IQueryable<Model对象>对象
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...今天
- 解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
- 解决springmvc使用@ResponseBody返回String类型字符串中文乱码问题
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- 使用Gson解析Json数组遇到的泛型类型擦除问题解决方法
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- Spring MVC 解决日期类型动态绑定问题
- js通过window.external调用delphi的返回值类型问题解决方案,不解的COM问题