2
我從Field.getGenericType()中檢索一個ParameterizedType對象,我想創建這種類型的實例。例如,這種類型可能表示一個HashMap。給定一個ParameterizedType,我該如何創建這種類型的實例?
我想也許我可以把它轉換爲一個類,然後使用newInstance(),但是這導致了ClassCastException。
我該怎麼做?
我從Field.getGenericType()中檢索一個ParameterizedType對象,我想創建這種類型的實例。例如,這種類型可能表示一個HashMap。給定一個ParameterizedType,我該如何創建這種類型的實例?
我想也許我可以把它轉換爲一個類,然後使用newInstance(),但是這導致了ClassCastException。
我該怎麼做?
ParameterizedType pType = ..;
((Class) pType.getRawType()).newInstance();
但是您不需要參數化類型 - 您可以簡單地使用field.getType()
。如果您想創建其中一個類型參數的實例,請使用ParameterizedType
。