1. 程式人生 > >Java 反射調用類的屬性和方法(包含父類私有屬性和覆蓋重寫的方法等)

Java 反射調用類的屬性和方法(包含父類私有屬性和覆蓋重寫的方法等)

tst set clas declared method ces arr tails net

public static void main(String[] args) {
//需要訪問的類 PaymentRequest
PaymentRequest tPaymentRequest=new PaymentRequest();
Class<PaymentRequest> mClass = PaymentRequest.class;
PaymentRequest instance = null;
try {
instance = mClass.newInstance();
//如果只獲取本類中的私有屬性
//Field field= mClass.getDeclaredField("param1");
//獲取本類中的私有方法 testMethod 方法名,String 參數 String 參數
//Method method = mClass.getMethod("testMethod", String.class, String.class);
//para 父類中 的私有屬性
Field field = mClass.getSuperclass().getDeclaredField("para");

field.setAccessible(true);
//獲取封裝參數,list、map、String、Interger,或者對象
MerchantPara merchantPara = (MerchantPara) field.get(tPaymentRequest);
//重置商戶id
merchantPara.setMerchantIDList(Arrays.asList(""));

//將重置的參數 設置到原參數中
field.set(instance, merchantPara);
} catch (Exception e) {
e.printStackTrace();
}
}
轉自:https://blog.csdn.net/hexingen/article/details/79355348

Java 反射調用類的屬性和方法(包含父類私有屬性和覆蓋重寫的方法等)