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

代码

/**

* @功能描述:顺序获取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

参考自http://www.cnblogs.com/dshjava/archive/2010/09/08/1821317.html,感谢原作者的无私奉献~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值