java 反射set方法赋值_反射 根据属性名获得属性set方法并为set方法赋值
/**
*
* @param key 屬性名
* @param value 屬性值
* @param o 要封裝的對象
*/
public static void setObject(String key, String value, Object o) {
//key=key.replaceAll("\\s*", "").replaceAll("_", "").toLowerCase();
key=UtilString.newString(key);//將A_B_C D 轉換為abcd 將excel中的列名,變為對象中的屬性名
log.info("=====================log.UtilEncapsulated.setObject.start===============key:"+key);
java.lang.reflect.Field field=null;
try {
//通過屬性名得到對應的set方法
field = o.getClass().getDeclaredField(key);
//屬性為private屬性設置為true
field.setAccessible(true);
//為該set方法賦值(參數為對象,屬性值)
field.set(o, value != null ? value.toString().trim():"");
} catch (NoSuchFieldException | SecurityException |IllegalArgumentException |IllegalAccessException e) {
log.error("log.UtilEncapsulated"+".UtilEncapsulated.exception.........反射封裝對象時失敗,請檢查excel的列名在javabean中屬性是否存在"+e);
throw new DataBaseAccessException(Constants.SERVICE_FILE_UPLOAD_CODE+"\n\t"+Constants.OB_EXCELTODB_ERROR+e);//5001 excel文件存入數據庫失敗
}
log.info("=====================log.UtilEncapsulated.setObject.end===============");
}
總結
以上是生活随笔為你收集整理的java 反射set方法赋值_反射 根据属性名获得属性set方法并为set方法赋值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: a extends b java_(cl
- 下一篇: java按钮调用 后台方法_onclic