有沒有辦法將Class
的對象作爲參數提供給泛型方法?將類對象作爲通用參數
例如,我有一個方法:
public <T> Queue <T> getSomething (...)
我具有Class
一個對象,如
Class<?> key = ...
是否有一種方法可以提供key
作爲通用參數getSomething(...)
方法?僞編碼的例子是:
Queue<key> queue = object.<key>getSomething(...)
有沒有辦法將Class
的對象作爲參數提供給泛型方法?將類對象作爲通用參數
例如,我有一個方法:
public <T> Queue <T> getSomething (...)
我具有Class
一個對象,如
Class<?> key = ...
是否有一種方法可以提供key
作爲通用參數getSomething(...)
方法?僞編碼的例子是:
Queue<key> queue = object.<key>getSomething(...)
可以傳遞一個類對象到一個方法聲明如下:
public <T> Queue<T> getSomething(Class<T> type, ...) { ... }
我已經這樣做了,但問題是:我希望返回的隊列具有與'key'相同類型的元素。因此,例如,如果'key'是'Class
上面的聲明顯示瞭如何聲明返回類型。你如何生成內容似乎是一個單獨的問題。您是否在過濾或轉換集合的元素?到目前爲止,你有什麼? –
我有一個'類>'類的對象的集合,我想遍歷集合並創建一個新的Queue,其中包含與集合中相同類型的元素。例如,集合包含'Integer.class','Object.class'等,我希望隊列分別是'隊列
可以將它作爲一個參數,像任何其他參數
Class<T> tClass = ...
Queue<T> queue = object.getSomething(tClass, ...);
你不能這樣做,因爲它沒用。
泛型類型參數純粹是編譯時類型檢查工具。因此,編譯時未知的類型參數的要點是什麼?你無法對此發表任何言論,而且你也無法對此做任何事情。
G'day,我認爲它不會有用;但是我懷疑你可以在泛型中使用它,因爲每個返回類型都需要聲明爲泛型的_child_。你不妨寫一些蹩腳(簡單)的樣板。一個有用的用例是根據業務需求檢查聲明性輸入,例如JavaFX節點插件類型,接口類型或數據庫構造。 – will
whyyyy ???這裏使用對象的優點是什麼?你可以簡單地使用ClassType – stinepike
我有一個'類>'類的對象的集合,我想遍歷集合,並創建一個新的隊列與集合中相同類型的元素。例如,集合包含'Integer.class','Object.class'等,我希望隊列分別是'隊列','隊列