通过ResultSet给反射对象赋值BigDecimal类型的有关问题

通过ResultSet给反射对象赋值BigDecimal类型的问题
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方法,但是像注释那样写运行时会出错。
------解决思路----------------------
感觉应该是用bigDecimal的构造方法用rs.getString(fields[i].getName())当参数来new个出来set进去.