2014-02-11 42 views
0

由於各種原因,我的方法接受通用Object參數。什麼方法取決於實際類型,所以我做一些實例測試對象是否是特定類型的通用列表

現在,在一個特定的情況下,我需要檢查是否類型是Iterable。

我發現使用泛型的instanceof不起作用。

x instanceof Iterable<Integer> 

那麼除了循環遍歷每個元素並測試它們的類型之外,還有哪些選擇?

回答

5

如果您不能影響您的方法的簽名或您獲得的Iterable實例的簽名,則無法區分例如Iterable<Object>僅包含來自Iterable<Integer>的實例的整數。他們在各方面都是一樣的;實際上,「Iterable<Integer>的實例」這個概念由於這個原因是模糊的。實例是運行時工件,構造函數類型參數是編譯時工件。

相關問題