java 获取set的值_java-读取javabean类的set方法并设值

/*** 新反射实例化模型

*@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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值