我一直在試圖得到這樣的工作:參數化參數化方法的返回類型
private static <V, K> V<KnownType> from(K oldObject, Class<? extends V<KnownType>> newClass) {
...
}
但是,這種方法的簽名得到一個編譯器錯誤:
The type V is not generic; it cannot be parameterized with arguments
<KnownType>
基本上,我想的方法將K
轉換爲V<KnownType>
。這可能嗎?
此外,一些額外的上下文,以防有人爲此編寫代碼 - 所有V
都有一個單參數構造函數,它接受K
。
在此先感謝。
編輯 - 輸入類是V的一個子類(? extends V...
)
你可以改變有問題的類的繼承層次嗎? –
我正在SDK上創建一個圖層,該圖層本身無法修改。所以我不能修改'K'或'KnownType',但我可以修改'V'及其所有的子類。 – Ryan
爲什麼你需要這樣做?反思是脆弱的。 –