ResultSet给反射对象赋值BigDecimal类型出错

J2EE 码拜 6年前 (2015-10-09) 1083次浏览
while(rs.next())
{
for(int i = 0 ; i < fields.length; i++) 
{
switch(fields[i].getGenericType().toString())
{
case "class java.lang.String":
fields[i].set(obj, rs.getString(fields[i].getName()));
break;

case "int":
fields[i].setInt(obj, rs.getInt(fields[i].getName()));
break;

case "class java.math.BigDecimal":
//fields[i].set(obj, rs.getString(fields[i].getName()));
break;

default:
err_flg = true;
}
} 
}

fields[i]是通过反射得到对象的属性数组,rs是ResultSet,根据属性的类型判断调用不同的方法赋值,请问如果是BigDecimal类型,应该怎么赋值?我只找到了set方法,但是像注释那样写运行时会出错。

解决方案:20分
感觉应该是用bigDecimal的构造方法用rs.getString(fields[i].getName())当参数来new个出来set进去.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ResultSet给反射对象赋值BigDecimal类型出错
喜欢 (0)
[1034331897@qq.com]
分享 (0)