這是我第一次使用反射並且不知道我在實例化受保護的構造函數時出現了什麼錯誤。下面是我的代碼來實例化JsonProcessingException的構造函數。NoSuchMethodException當使用反射來實例化受保護的構造函數時
getDeclaredConstructor正在引發NoSuchMethodException,雖然此異常類具有帶有一個,兩個和三個參數的受保護構造函數。
final Constructor<JsonProcessingException> constructor =
JsonProcessingException.class
.getDeclaredConstructor(Object.class, Object.class);
constructor.setAccessible(true);
我的假設:我已閱讀,我們可以使用反射實例化私有構造所以我假設proteted也被實例化。
看是不是通過Object.class得到單個參數的任何構造的一種通用的方式? –
@Vishwanathgowdak否(除非參數類型真的和'Object')。你必須知道參數類型。如果你需要不那麼嚴格的匹配,那麼你應該遍歷'getDeclaredConstructors()'來找到哪個構造函數是合適的 – vsminkov