1. 程式人生 > >物件反射賦值

物件反射賦值

在不確定物件欄位及內容的前提下,為物件賦值的解決方案通常是反射賦值

更多精彩

實現方式

// 獲取當前會員物件
Class<MemberDTO> member = (Class<MemberDTO>) super.getMember().getClass();

// 獲取所有欄位
Field[] fileds = member.getDeclaredFields();

// 遍歷欄位找到與當前修改欄位相符合的欄位
for (Field field : fileds)
{ // ** 獲取私有欄位的操作許可權 field.setAccessible(true); if (field.getName().equals(name)) { // 找到欄位對應 set 方法 PropertyDescriptor pd = new PropertyDescriptor(field.getName(), member); Method method = pd.getWriteMethod(); // 傳入當前物件,並賦值 method.invoke(super.getMember(), value); break; } }