問心

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

           

          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
          說明: 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 @ 2012-09-14 16:21 xing_sky 閱讀(394) | 評論 (0)編輯 收藏

          僅列出標題  

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 佛学| 南宫市| 昔阳县| 博湖县| 仙居县| 广西| 南康市| 岑巩县| 泰来县| 嘉禾县| 社会| 响水县| 兴隆县| 历史| 清苑县| 赞皇县| 曲松县| 绥阳县| 丹凤县| 华宁县| 余干县| 视频| 威信县| 梨树县| 六枝特区| 潍坊市| 昌吉市| 定边县| 平湖市| 肇庆市| 和静县| 阿尔山市| 安顺市| 晋城| 三门县| 芦溪县| 周宁县| 全南县| 金坛市| 抚顺县| 临城县|