zoukankan      html  css  js  c++  java
  • 反射 根据属性名获得属性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+" "+Constants.OB_EXCELTODB_ERROR+e);//5001 excel文件存入数据库失败
    }
    log.info("=====================log.UtilEncapsulated.setObject.end===============");
    }

  • 相关阅读:
    GIT
    curl
    排序算法
    《软件设计师》考点分布
    lua第三方库
    WordPress
    go http
    Unity UI相关总结
    note
    LUA重难点解析
  • 原文地址:https://www.cnblogs.com/songyunxinQQ529616136/p/6632721.html
Copyright © 2011-2022 走看看