/**
* 新反射实例化模型
* @param filenamepath
* @return
*/
public static Object newIntence(String filenamepath) {
Object t = null;
try {
Class<?> cls = Class.forName(filenamepath);
t = cls.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return t;
} @SuppressWarnings("unchecked")
public static <T> T convertObj(Map<String,Object> map, Class<T> cls) {
Object obj = ModelUtils.createInstance(cls);
if( map != null ) {
convertObj(JSONObject.fromObject(map), obj);
}
return (T)obj;
} public static void convertObj(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 void invokeSetMethod(Object object, Method method, Object value)
{
try
{
method.invoke(object, new Object[] {
value
});
}
catch(IllegalAccessException ex)
{
throw new IllegalArgumentException(ex.getMessage());
}
catch(InvocationTargetException ex)
{
throw new IllegalArgumentException(ex.getMessage());
}
catch(Exception ex)
{
throw new IllegalArgumentException(ex.getMessage());
}
} /**
* 数据根据类型转化成响应的数据
* @param methodType
* @param ob
* @return
*/
public static Object converValueType(String methodType,Object ob){
if( ob == null )return null;
if( StringUtils.isBlank(methodType)) return ob.toString();
if( "java.math.BigDecimal".equalsIgnoreCase(methodType)){
try {
return new BigDecimal(ob.toString());
} catch (Exception e) {
e.printStackTrace();
}
}else if( "java.lang.String".equalsIgnoreCase(methodType)){
try {
return ob.toString();
} catch (Exception e) {
e.printStackTrace();
} }else if( "java.lang.Integer".equalsIgnoreCase(methodType)){
try {
return Integer.parseInt(ob.toString());
} catch (Exception e) {
e.printStackTrace();
}
}else if( "java.util.Date".equalsIgnoreCase(methodType)){
try {
return DateTimeUtils.str2Date(ob.toString(), DateTimeUtils.FORMAT_yyyy_MM_dd);
} catch (Exception e) {
e.printStackTrace();
}
}else if( "long".equalsIgnoreCase(methodType)){
try {
return Long.parseLong(ob.toString());
} catch (Exception e) {
e.printStackTrace();
}
}else{
logger.debug("ConverUtils converValueType is fail .type["+methodType+"],value["+ob+"]");
}
return null;
}

java-读取javabean类的set方法并设值的更多相关文章

  1. Java读取Properties文件的六种方法

    使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedIn ...

  2. java读取配置文件的几种方法

    java读取配置文件的几种方法 原文地址:http://hbcui1984.iteye.com/blog/56496         在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配 ...

  3. java.lang.String 类的所有方法

    java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...

  4. java的ThreadLocal类的使用方法

    java的ThreadLocal类的使用方法,ThreadLocal是一个支持泛型的类,用在多线程中用于防止并发冲突问题. 比如以下的一个样例,就是用于线程添加1,可是相互不冲突 package co ...

  5. Java中主类中定义方法加static和不加static的区别

     Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用(类名.方法),后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 ...

  6. Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能

    Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能. 下面是个例子: import org.junit.Test; import java. ...

  7. Java读取CSV和XML文件方法

    游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...

  8. java 之 file类的一些方法

    File类: File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成.但是File不能访问文件内容本身. 访问文件和目录: 1. ...

  9. Java中String类的format方法使用总结

    可参考: http://www.cnblogs.com/fsjohnhuang/p/4094777.html http://kgd1120.iteye.com/blog/1293633 String类 ...

随机推荐

  1. winForm连接数据库(sqlserver2005)

    帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...

  2. apache中怎么配置网站的默认首页

    配置方法如下:1.首先需要打开Apache的配置文件httpd.conf文件,使用一般的编辑器或者记事本打开均可.2.找到或者搜索到如下字段:<IfModule dir_module> D ...

  3. C3p0连接池配置

    在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)   ②连接数据库(Connection co ...

  4. 性能卓越的js模板引擎--artTemplate

    artTemplate能够将数据与View视图的分离,充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现. 在 chrome 下渲染效率测试中分别是知名引擎 Mu ...

  5. arcgis 按面积分割, 按比例分割面积,按等份批量面积分割工具

    arcgis 按面积分割, 按比例分割面积,按等份批量面积分割工具 视频下载:https://yunpan.cn/cvujkpKIqwccn  访问密码 e9f4

  6. ArcGIS Engine开发之量测功能

    1.距离测量 距离测量时,片段长度通过两点之间距离计算得到,全部长度通过片段长度的和计算得到.主要用到INewLineFeedback和IScreenDisplay两个接口. 1)INewLineFe ...

  7. Github装(zao)逼(jia)指(da)南(fa)

    Github之于工程师,类似于微博相册之于嫩模,像是个门面. 无论是晋升答辩,还是求职面试,有一个丰富的代码仓库不敢说好处有多大,但总归是有的.并且好处不局限于此,代码开源才会暴露问题才会改正,并且会 ...

  8. Oracle死锁

    当两个或多个用户相互等待锁定的数据时就会发生死锁,这时这些用户被卡在不能继续处理业务,oracle可以自动检测死锁并解决他们,通过回滚一个死锁中的语句,释放锁定的数据,回滚的话会遇到ora-00060 ...

  9. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

  10. Oracle学习笔记四 SQL命令(二):SQL操作语言类别

    SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...