java-读取javabean类的set方法并设值
/**
* 新反射实例化模型
* @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方法并设值的更多相关文章
- Java读取Properties文件的六种方法
使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedIn ...
- java读取配置文件的几种方法
java读取配置文件的几种方法 原文地址:http://hbcui1984.iteye.com/blog/56496 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配 ...
- java.lang.String 类的所有方法
java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...
- java的ThreadLocal类的使用方法
java的ThreadLocal类的使用方法,ThreadLocal是一个支持泛型的类,用在多线程中用于防止并发冲突问题. 比如以下的一个样例,就是用于线程添加1,可是相互不冲突 package co ...
- Java中主类中定义方法加static和不加static的区别
Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用(类名.方法),后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 ...
- Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能
Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能. 下面是个例子: import org.junit.Test; import java. ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
- java 之 file类的一些方法
File类: File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成.但是File不能访问文件内容本身. 访问文件和目录: 1. ...
- Java中String类的format方法使用总结
可参考: http://www.cnblogs.com/fsjohnhuang/p/4094777.html http://kgd1120.iteye.com/blog/1293633 String类 ...
随机推荐
- 口碑外卖系统架构图(li)
- (转)SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步
最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...
- C#Excel文件加密实现,支持xlsx、docx、pptx(C#\Net\Asp.Net)
从此刻开始,我已封闭!概不接客! 像风一样的男人,像风一样的性格,无拘无束,不拘一格.那么问题来了,当风遇到沙,不一定你是风儿,我是沙儿的缠缠绵绵,.也许是漫天黄沙,飞粒走石.如果我们期望擒住这漫天的 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- Android 5.X新特性之RecyclerView基本解析及无限复用
说到RecyclerView,相信大家都不陌生,它是我们经典级ListView的升级版,升级后的RecyclerView展现了极大的灵活性.同时内部直接封装了ViewHolder,不用我们自己定义Vi ...
- 【代码笔记】iOS-UILable电子表显示
一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...
- SegmentControl 那些令人烦恼的事儿
每个人的曾经都很苦逼.我知道我很卑微,但我不曾放慢脚步,在这条路上至死不悔.愿与你同行. UISegmentControl 概述 UISegmentControl 是系统的段选择控件,具有简洁大方的外 ...
- 用户代理字符串识别工具源码与slf4j日志使用
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等.UA也成为了, ...
- AngularJS HTML DOM& 事件
AngularJS 为 HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled 指令直接绑定应用程序数据到 HTML 的 disabled 属性 <div ng-app= ...
- 3.raid基础应用
raid分为软备份和硬备份 软备份主要用来实验 应备份用于生产环境 raid0(带区卷) 具有很高的数据传输率,没有数据的冗余 1块磁盘 raid1(镜像卷) 提供数据冗余,利用率低 2块 ...