/*** 新反射实例化模型
*@paramfilenamepath
*@return
*/
public staticObject newIntence(String filenamepath) {
Object t= null;try{
Class> cls =Class.forName(filenamepath);
t=cls.newInstance();
}catch(Exception e) {
e.printStackTrace();
}returnt;
}
@SuppressWarnings("unchecked")public static T convertObj(Map map, Classcls) {
Object obj=ModelUtils.createInstance(cls);if( map != null) {
convertObj(JSONObject.fromObject(map), obj);
}return(T)obj;
}public static voidconvertObj(JSONObject jsonObj, Object obj)
{
PropertyDescriptor pds[]=BeanUtils.getPropertyDescriptors(obj.getClass());for(int i = 0; i < pds.length; i++)
{
PropertyDescriptor pd=pds[i];if(jsonObj.containsKey(pd.getName())){
Method method=pd.getWriteMethod();
String parameterTypeName= (method.getParameterTypes()[0].getName());
Object ob=pd.getName();//System.out.println(method.getName()+":"+ob+":"+jsonObj.get(ob));
invokeSetMethod(obj, method, converValueType(parameterTypeName, jsonObj.get(ob)));
}
}
}public static voidinvokeSetMethod(Object object, Method method, Object value)
{try{
method.invoke(object,newObject[] {
value
});
}catch(IllegalAccessException ex)
{throw newIllegalArgumentException(ex.getMessage());
}catch(InvocationTargetException ex)
{throw newIllegalArgumentException(ex.getMessage());
}catch(Exception ex)
{throw newIllegalArgumentException(ex.getMessage());
}
}/*** 数据根据类型转化成响应的数据
*@parammethodType
*@paramob
*@return
*/
public staticObject converValueType(String methodType,Object ob){if( ob == null )return null;if( StringUtils.isBlank(methodType)) returnob.toString();if( "java.math.BigDecimal".equalsIgnoreCase(methodType)){try{return newBigDecimal(ob.toString());
}catch(Exception e) {
e.printStackTrace();
}
}else if( "java.lang.String".equalsIgnoreCase(methodType)){try{returnob.toString();
}catch(Exception e) {
e.printStackTrace();
}
}else if( "java.lang.Integer".equalsIgnoreCase(methodType)){try{returnInteger.parseInt(ob.toString());
}catch(Exception e) {
e.printStackTrace();
}
}else if( "java.util.Date".equalsIgnoreCase(methodType)){try{returnDateTimeUtils.str2Date(ob.toString(), DateTimeUtils.FORMAT_yyyy_MM_dd);
}catch(Exception e) {
e.printStackTrace();
}
}else if( "long".equalsIgnoreCase(methodType)){try{returnLong.parseLong(ob.toString());
}catch(Exception e) {
e.printStackTrace();
}
}else{
logger.debug("ConverUtils converValueType is fail .type["+methodType+"],value["+ob+"]");
}return null;
}