問(wèn)心

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

           

          2012年9月14日

          使用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
          說(shuō)明: getGenericSuperclass() 通過(guò)反射獲取當(dāng)前類表示的實(shí)體(類,接口,基本類型或void)的直接父類的Type,getActualTypeArguments()返回參數(shù)數(shù)組。

          二、泛型 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>{

          }
          測(cè)試類:
          package com.mrlun.oa.test;

          public class Test{
          public static void main(String[] args) {
          UserDao userdao=new UserDao();
          userdao.save();
          }
          }
          //output:
          Type為: Users(new 子類時(shí)會(huì)調(diào)用父類的默認(rèn)的構(gòu)造方法)
          Type為: Users
          這時(shí),我們就可以使用泛型來(lái)簡(jiǎn)化DAO的操作,省去了寫(xiě)N多有重復(fù)的方法的DAO的時(shí)間。

          posted @ 2012-09-14 16:21 xing_sky 閱讀(394) | 評(píng)論 (0)編輯 收藏

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 祁连县| 财经| 象州县| 河东区| 林口县| 天峻县| 绍兴县| 庆阳市| 张家川| 胶南市| 沐川县| 息烽县| 巫溪县| 威远县| 蕲春县| 周口市| 永兴县| 凤山县| 石门县| 长宁县| 建瓯市| 长子县| 彭州市| 彰武县| 合水县| 建阳市| 高陵县| 利津县| 无锡市| 瑞丽市| 包头市| 内乡县| 民丰县| 淅川县| 昌都县| 刚察县| 涿鹿县| 武川县| 乌拉特后旗| 天柱县| 崇州市|