如何编写工具类
来源:互联网 发布:淘宝其他物流是什么 编辑:程序博客网 时间:2024/05/17 05:01
上篇的反射创建的对象工厂也是一个工具类
编写工具类俩种方式:
一:
1.工具方法都设为非static方法
2.将工具类设计为单列模式
3.注意这种方式需要获取工具类对象(实例化)才能调用方法
二:
1.工具方法设计为static方法
2.工具 类所有构造方法都设计为private修饰
3.工具类本身以abstract修饰(目的就是只能用类调用方法,不能实例化)
/***************************对象调用方式****************************/
public class BeanFactory {
public BeanFactory(){
}
public <T>T getBeanFactory(String name,Class<T> checkType){
Object obj;
try {
Class<T> claz = (Class<T>) Class.forName(name);
obj = claz.newInstance();
if(!checkType.isInstance(obj)){
throw new IllegalArgumentException("参数类型不匹配");
}else{
return (T)obj;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
/**************************static方式*************************/
abstract public class BeanFactory {
private BeanFactory(){
}
public static <T>T getBeanFactory(String name,Class<T> checkType){
Object obj;
try {
Class<T> claz = (Class<T>) Class.forName(name);
obj = claz.newInstance();
if(!checkType.isInstance(obj)){
throw new IllegalArgumentException("参数类型不匹配");
}else{
return (T)obj;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
/*************************** 枚举方式*********************************/
枚举调用方式:
Date date2 = BeanFactory.INSTANCE.getBeanFactory("java.util.Date",Date.class);
package invokeBeanFactorty;
/**
* 利用java反射创建一个对象工厂 创建对象工厂模式 涉及到设计模式中的单列模式
* 最好用枚举的方式
* @author Administrator
*
*/
public enum BeanFactory {
INSTANCE;
public <T>T getBeanFactory(String name,Class<T> checkType){
Object obj;
try {
Class<T> claz = (Class<T>) Class.forName(name);
obj = claz.newInstance();
if(!checkType.isInstance(obj)){
throw new IllegalArgumentException("参数类型不匹配");
}else{
return (T)obj;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
- 如何编写工具类
- 工具类ArrayTool(如何编写文档导出)
- JDBC工具类编写
- 编写Unity工具类
- 如何编写一个文件捆绑工具
- HibernateUtil工具类的编写
- 工具类的编写方式
- matlab如何编写类
- DOM事件模型是如何的,编写一个EventUtil工具类实现事件管理兼容
- 如何利用Win7的“数学输入面板”工具编写数学公式
- 如何编写一个ASP类
- RCP应用程序工具类编写小结
- RCP应用程序工具类编写小结
- 自己动手用JAVA编写JSON工具类
- RCP应用程序工具类编写小结
- 04网络请求工具类的编写
- 24SharedPreferences的工具类的编写
- JDBC:编写通用的 JDBCUtils工具类
- 项目1——三角形类5
- 第五周项目2.1
- lightoj 1147 - Tug of War DP压位
- 第5周项目6人物角色
- 第五周【项目2-游戏中的角色类2】
- 如何编写工具类
- 三角形类的复制构造函数
- 第五周项目2.2
- 第五周项目训练2 设计游戏角色类
- java使用poi导出execl模板给其控件赋值的小技巧
- Postgresql数据库的一些字符串操作函数
- VirtualBox虚拟机网络设置
- 第五周项目1-三角形类雏形(4)
- 在一台服务器上搭建多个项目的SVN