代码
/** * @功能描述:顺序获取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
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦