1
我有方法的樣子如何通過通用的這個方法
doSomething(Class<T> valueType)
我叫通價值像
Map.class,Long.class
爲參數成以上方法。如果我想使用通用。我應該如何將價值轉化爲上述方法? doSomething(Class<Map>);
不工作
我有方法的樣子如何通過通用的這個方法
doSomething(Class<T> valueType)
我叫通價值像
Map.class,Long.class
爲參數成以上方法。如果我想使用通用。我應該如何將價值轉化爲上述方法? doSomething(Class<Map>);
不工作
Map.class
返回Class<Map>
類型的對象,返回Long.class
Class<Long>
類型的對象。
那麼通過Map.class
你的T需要給我地圖。 如果你希望你的T是一個通用的,比如ArrayList<String>
,那麼這是不可能的。 原因是Java中的泛型使用了類型擦除,這意味着泛型類型僅在編譯時存在,但在運行時會被刪除。因此,不存在像ArrayList<String>.class
這樣的東西。
Java泛型與C#泛型相當不同。
'類別
如何更正它? – cometta
你可能會嘗試? doSomething(類別 extends T> clazz);如果你正試圖執行一類地圖。我不太清楚你在做什麼。是泛型的類。 A列表強制執行類型,類語句一般都是某種實例化類的工廠方法。閱讀文檔 - 這是你最好的選擇。 –