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进去.