問心

          你若不離不棄 我必生死相依

           

          使用getGenericSuperclass()和getActualTypeArguments()將DAO做成泛型

          一、getGenericSuperclass()和getActualTypeArguments()基本用法:

          import java.lang.reflect.ParameterizedType;
          public class TT extends TT2<Integer> {

          public static void main(String[] args) {

          System.out.println(((ParameterizedType) new TT().getClass()
          .getGenericSuperclass()).getActualTypeArguments()[0]);

          }

          }
          //output:class java.lang.Integer
          說明: getGenericSuperclass() 通過反射獲取當前類表示的實體(類,接口,基本類型或void)的直接父類的Type,getActualTypeArguments()返回參數數組。

          二、泛型 DAO 模擬
          BaseDaoImpl類:
          package com.mrlun.oa.test;
          import java.lang.reflect.ParameterizedType;
          @SuppressWarnings("unchecked")
          public class BaseDaoImpl<T> {
          private Class clazz;

          public BaseDaoImpl() {
          ParameterizedType pt = (ParameterizedType) this.getClass()
          .getGenericSuperclass();
          this.clazz = (Class) pt.getActualTypeArguments()[0];
          System.out.println("Type為: " + clazz.getSimpleName());
          }
          public void save() {
          System.out.println("Type為: " + clazz.getSimpleName());
          }

          }
          UserDao類:
          package com.mrlun.oa.test;

          public class UserDao extends BaseDaoImpl<Users>{

          }
          測試類:
          package com.mrlun.oa.test;

          public class Test{
          public static void main(String[] args) {
          UserDao userdao=new UserDao();
          userdao.save();
          }
          }
          //output:
          Type為: Users(new 子類時會調用父類的默認的構造方法)
          Type為: Users
          這時,我們就可以使用泛型來簡化DAO的操作,省去了寫N多有重復的方法的DAO的時間。

          posted on 2012-09-14 16:21 xing_sky 閱讀(394) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 德保县| 河源市| 武清区| 历史| 兴化市| 瑞安市| 开江县| 深州市| 北票市| 罗山县| 璧山县| 佛坪县| 佛学| 南和县| 景东| 射洪县| 石棉县| 清新县| 衢州市| 翼城县| 沾化县| 北流市| 英吉沙县| 西华县| 喀什市| 道孚县| 松阳县| 白朗县| 济宁市| 华亭县| 敦化市| 牟定县| 隆化县| 溧阳市| 白银市| 肥乡县| 绥芬河市| 偃师市| 新闻| 镇坪县| 独山县|