zoukankan      html  css  js  c++  java
  • Java泛型 T.class的获取

    public interface BaseDao<T> {  
        T get(String id);  
    }  
     1 import java.lang.reflect.ParameterizedType;  
     2 import java.lang.reflect.Type;  
     3   
     4 public abstract class HibernateBaseDao<T> implements BaseDao<T> {  
     5     private Class<T> entityClass;  
     6   
     7     /** 
     8      * 这个通常也是hibernate的取得子类class的方法 
     9      *  
    10      * @author "yangk" 
    11      * @date 2010-4-11 下午01:51:28 
    12      */  
    13     public HibernateBaseDao() {  
    14         Type genType = getClass().getGenericSuperclass();  
    15         Type[] params = ((ParameterizedType) genType).getActualTypeArguments();  
    16         entityClass = (Class) params[0];  
    17     }  
    18   
    19     @Override  
    20     public T get(String id) {  
    21         try {  
    22             return entityClass.newInstance();  
    23         } catch (InstantiationException e) {  
    24             // TODO Auto-generated catch block  
    25             e.printStackTrace();  
    26         } catch (IllegalAccessException e) {  
    27             // TODO Auto-generated catch block  
    28             e.printStackTrace();  
    29         }  
    30         return null;  
    31     }  
    32   
    33 }  

    14-16行是重点,entityClass即为Class,也就是T.class

    本文参考:http://blog.csdn.net/ykdsg/article/details/5472591

  • 相关阅读:
    七、基础数据类型补充
    JavaScript DOM 鼠标拖拽
    JavaScript JSON 与 AJAX
    JavaScript DOM 事件模型
    JavaScript DOM 样式操作
    JavaScript DOM 常用尺寸
    JavaScript 日期与计时器
    JavaScript DOM 基础
    JavaScript 数组
    JavaScript 对象拷贝
  • 原文地址:https://www.cnblogs.com/wuyou/p/3903529.html
Copyright © 2011-2022 走看看