Java 일반 T.class 가져오기

4570 단어 java 일반형
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 줄이 포인트, entity Class는 Class, 즉 T.class입니다.
 
본문 참조:http://blog.csdn.net/ykdsg/article/details/5472591

좋은 웹페이지 즐겨찾기