[問題] 泛型中取得T.class(class<T>)?

看板java作者 ( who)時間11年前 (2014/01/17 12:39), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
有一個函數AAA需要傳入型別Class<T> T x=AAA(T.class); 如果T為實際的class則可以執行 但寫成template卻會出錯 暫時以初始化時要求傳入Class<T> private Class<T> clazz; constructor(Class<T> c){ clazz=c; T x=AAA(clazz); } 不知是否有其他更簡易的寫法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.250.151

01/19 20:36, , 1F
你的問題表達得很不清楚,但我猜你想做的事情是不行的
01/19 20:36, 1F

01/19 20:41, , 2F
泛型應該只能延後宣告部分型別到建構前,但就是不能省
01/19 20:41, 2F

01/20 13:01, , 3F
可以想想為什麼沒辦法new T(); XD
01/20 13:01, 3F

01/21 15:43, , 4F
問題很模糊,compiler 的 error message 是什麼?
01/21 15:43, 4F

01/31 17:52, , 5F
要到執行時期才能知道T.class 但是T在編譯時期就要被決
01/31 17:52, 5F

01/31 17:53, , 6F
定了
01/31 17:53, 6F
文章代碼(AID): #1IsBFs62 (java)
文章代碼(AID): #1IsBFs62 (java)