/**
* 新反射实例化模型
* @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. 【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建个数据模型,并且添加接口和实现类. 添加EF上下文对象 按照我们以前 ...

  2. 自己动手写计算器v1.1

    这个改动主要是使用工厂模式替代了简单工厂模式,这样做的好处是如果以后我们要扩充其他运算时,就不用总是去修改工厂类, 这是可以采取工厂模式,主要是将原来简单工厂类的逻辑判断分离出来,将它作为一个借口,与 ...

  3. 数据仓库开发——Kettle使用示例

    Kettle是一个开园ETL工具,做数据仓库用Spoon. 工具:下载Spoon,解压即可用   1.认识常用组件:     表输入     插入\更新     数据同步     文本文件输出     ...

  4. jQuery版AJAX简易封装

    开发过程中,AJAX的应用应该说非常频繁,当然,jQuery的AJAX函数已经非常好用,但是小编还是稍微整理下,方便不同需求下,可以简化输入参数,下面是实例代码: $(function(){ /** ...

  5. 工业物联网或系统集成中应用消息队列(ActiveMQ,C#的demo)的场景全面分析

    1.[连载]<C#通讯(串口和网络)框架的设计与实现> 2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 2.应用SuperIO(SIO)和开源跨平台物联网框 ...

  6. 关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。

    两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity ...

  7. node.js+socket.io配置详解

    由于我是在win7的环境下,在这里就以win7系统为例进行讲解了. 首先需要在nodejs官网下载最新版的node.js,下载完毕直接安装即可,安装成功后在cmd命令行中执行node指令,如下结果就说 ...

  8. JAVA编程思想(第四版)学习笔记----11.5 List,11.6迭代器

    Collection类的层次结构图(来源与网络)如下所示: 接口:Iterator<T> public interface Iterable<T> Iterable<T& ...

  9. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  10. ZooKeeper:Java客户端网络处理

    了解ZooKeeper客户端的实现,对于使用ZooKeeper的客户端非常重要. 通过对客户端源码的阅读,了解了如下信息: 创建ZooKeeper对象时,应会创建一个ClientCnxn(代表了客户端 ...