各种类型转换.
/**
** FieldHelper 类描述: TODO 创建人: wyh 创建时间:2013-3-21 上午09:40:50
*
* @version 1.0
*
*/
public class FieldHelper<T> {
private static Log log = LogFactory.getLog(FieldHelper.class);
/**
* 用户数据库 column
*
* @param list
* @param t
*/
public void fillObject(Map<String, T> m, Class<T> c, T t) {
if (null != m && null != c) {
try {
Field[] field = c.getDeclaredFields();
for (Field f : field) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(),c);
Method md = pd.getWriteMethod();
Object value = m.get(fieldName(f.getName()));
String methodName = md.getParameterTypes()[0].toString();
if(null != value){
if (methodName.equals("class java.lang.Long")) {
value = new BigDecimal(String.valueOf(value)).longValue();
} else if (methodName.equals("class java.lang.Integer")) {
value = new BigDecimal(String.valueOf(value)).intValue();
} else if (methodName.equals("class java.lang.Double")) {
value = new BigDecimal(String.valueOf(value)).longValue();
} else if (methodName.equals("class java.lang.Float")) {
value = new BigDecimal(String.valueOf(value)).floatValue();
}else if (methodName.equals("class java.util.Date")) {
if(value instanceof java.sql.Timestamp){
value=new Date(((Timestamp)value).getTime());
}
else if(value instanceof oracle.sql.TIMESTAMP){
TIMESTAMP time = (TIMESTAMP)value;
Timestamp time1 = time.timestampValue();
value = new Date(time1.getTime());
}
else if(value instanceof java.sql.Date){
value=new Date(((java.sql.Date)value).getTime());
}
else{
value = (Date)value;
}
}else if(methodName.equals("class java.math.BigDecimal")){
value = new BigDecimal(String.valueOf(value));
}
md.invoke(t, value);
}
}
} catch (Exception e) {
log.error("获取数据失败", e);
}
}
}
}