如何编写工具类 您所在的位置:网站首页 java工具类编写 如何编写工具类

如何编写工具类

2024-02-08 19:32| 来源: 网络整理| 查看: 265

上篇的反射创建的对象工厂也是一个工具类

编写工具类俩种方式:

一:

 1.工具方法都设为非static方法

 2.将工具类设计为单列模式

 3.注意这种方式需要获取工具类对象(实例化)才能调用方法

二:

 1.工具方法设计为static方法

 2.工具 类所有构造方法都设计为private修饰

 3.工具类本身以abstract修饰(目的就是只能用类调用方法,不能实例化)

 

/***************************对象调用方式****************************/

public class BeanFactory {           public BeanFactory(){           }          public T  getBeanFactory(String name,Class checkType){              Object obj;         try {         Class claz = (Class) 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  getBeanFactory(String name,Class checkType){              Object obj;         try {         Class claz = (Class) 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  getBeanFactory(String name,Class checkType){              Object obj;         try {         Class claz = (Class) 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;          }          }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有