[英]Get class object from generic type
我想通過刪除無用的類來簡化項目。 通過無用的類,我的意思是:
public class MainPage extends TileGridFragment<MainModel> {}
該類的整個邏輯由TileGridFragment
實現,數據由MainModel
提供,由於使用了singleton類,因此可以訪問該實例。
我想將此類的實例化推遲到以后,所以我只是將MainPage.class
傳遞給我的方法。
因為MainPage
等效於TileGridFragment<MainModel>
,所以我想刪除此類,而改用TileGridFragment<MainModel>.class
類的東西。
但這是行不通的,我沒想到。
我也嘗試過Class.forName
,但是它拋出ClassNotFoundException
。
任何想法 ?
如果MainPage
的實現實際上是{}
,則只需傳遞TileGridFragment.class
。 實際類型參數與運行時無關,因為它們會被擦除刪除 。
另外,由於擦除的原因,您可以將新的TileGridFragment
(具有原始類型,作為TitleGridFragment.class.newInstance()
的結果) TitleGridFragment<MainModel>
為TitleGridFragment<MainModel>
,並且不會造成附帶損害(除了來自編譯器)。
您不能真正地從反射中得到一些快樂,但是我不確定您到底想做什么。
試試這里: 在運行時獲取類的通用類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.