問心

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

           

          使用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)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 芦溪县| 房产| 汤原县| 桐梓县| 贡山| 竹溪县| 固安县| 巴青县| 灵璧县| 万年县| 中超| 彰武县| 蓬莱市| 奉贤区| 普安县| 日喀则市| 遂川县| 夏河县| 宜君县| 潜江市| 获嘉县| 慈溪市| 闵行区| 九龙城区| 虹口区| 江城| 会理县| 亳州市| 徐水县| 苍梧县| 五寨县| 浑源县| 汉寿县| 双辽市| 洪湖市| 长葛市| 拉萨市| 汉沽区| 巢湖市| 灵璧县| 德化县|