继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

顺序获取javaBean中的属性和对应的值

萌萌小温柔
关注TA
已关注
手记 306
粉丝 56
获赞 401

代码

 /** * @功能描述:顺序获取javaBean中的属性和对应的值,并格式化为"'','',...'',''" */public static String getFieldValueByName(Object obj) {    StringBuffer valueStr = new StringBuffer();    Field fields[] = obj.getClass().getDeclaredFields();    String[] beanName = new String[fields.length];    Object[] beanValue = new Object[fields.length];    Object[] beanSourceType = new Object[fields.length];    try {        Field.setAccessible(fields, true);        for (int i = 0; i < beanName.length; i++) {            beanName[i] = fields[i].getName();            beanValue[i] = fields[i].get(obj);            beanSourceType[i] = fields[i].getType().getName();            if ("java.lang.Integer".equals(beanSourceType[i]) || "java.lang.Long".equals(beanSourceType[i])                    || "java.lang.BigInteger".equals(beanSourceType[i]) || "java.lang.Float".equals(beanSourceType[i])                    || "java.lang.Double".equals(beanSourceType[i]) || "java.lang.BigDecimal".equals(beanSourceType[i])) {                valueStr.append(beanValue[i]);            }else{                valueStr.append("'");                valueStr.append(converEmpty((String)beanValue[i]));                valueStr.append("'");            }            valueStr.append(",");        }    } catch (Exception e) {        e.printStackTrace();    }    String sqlValueStr = valueStr.toString();    if (sqlValueStr.length() > 0) {        sqlValueStr = sqlValueStr.substring(0, sqlValueStr.lastIndexOf(","));    }    return sqlValueStr;}/** * @功能描述:如果字符串是null,则返回""字符串 */public static String converEmpty(String str){    return (str == null || "null".equals(str)) ? "" : str;}

以上代码中,Field.setAccessible(fields,true); 是最为关键的一点。
在使用java反射机制获取 JavaBean 的属性值时,如果该属性被声明为private 的,需要将setAccessible设置为true. 默认的值为false


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP