Java获得泛型类中T的实例
生活随笔
收集整理的這篇文章主要介紹了
Java获得泛型类中T的实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
獲得泛型類代碼:
//獲得泛型T的具體類 public class GetGenericUtil<T> {//得到泛型類Tpublic Class getMyClass(){System.out.println(this.getClass());//class com.dfsj.generic.UserDaoImpl因為是該類調用的該法,所以this代表它//返回表示此 Class 所表示的實體類的 直接父類 的 Type。注意,是直接父類//這里type結果是 com.dfsj.generic.GetInstanceUtil<com.dfsj.generic.User>Type type = getClass().getGenericSuperclass();// 判斷 是否泛型if (type instanceof ParameterizedType) {// 返回表示此類型實際類型參數的Type對象的數組.// 當有多個泛型類時,數組的長度就不是1了Type[] ptype = ((ParameterizedType) type).getActualTypeArguments();return (Class) ptype[0]; //將第一個泛型T對應的類返回(這里只有一個)} else {return Object.class;//若沒有給定泛型,則返回Object類}}}測試類代碼:
public class UserDaoImpl extends GetGenericUtil<User>{public User getUser() throws Exception{Object obj = this.getMyClass().newInstance();//得到泛型類,然后創建一個新實例。if(obj instanceof User){return (User)obj; }else{return null;}}public static void main(String[] args) throws Exception {User u = new UserDaoImpl().getUser();System.out.println(u+"----");}}總結
以上是生活随笔為你收集整理的Java获得泛型类中T的实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现根据权重优先返回(速度较快)
- 下一篇: java美元兑换,(Java实现) 美元