BeanUtil为javaBean注入属性支持类型 以及个人的实现方法
2015-04-11 23:58
218 查看
javaBean属性: set,get后面的值
javaBean字段: private 定义的大多数是没有区别的
* java.lang.BigDecimal
* java.lang.BigInteger
* boolean and java.lang.Boolean
* byte and java.lang.Byte
* char and java.lang.Character
* java.lang.Class
* double and java.lang.Double
* float and java.lang.Float
* int and java.lang.Integer
* long and java.lang.Long
* short and java.lang.Short
* java.lang.String
* java.sql.Date
* java.sql.Time
* java.sql.Timestamp
个人实现的类似功能Util
javaBean字段: private 定义的大多数是没有区别的
* java.lang.BigDecimal
* java.lang.BigInteger
* boolean and java.lang.Boolean
* byte and java.lang.Byte
* char and java.lang.Character
* java.lang.Class
* double and java.lang.Double
* float and java.lang.Float
* int and java.lang.Integer
* long and java.lang.Long
* short and java.lang.Short
* java.lang.String
* java.sql.Date
* java.sql.Time
* java.sql.Timestamp
个人实现的类似功能Util
package com.hzq.test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.ParseException; import java.text.SimpleDateFormat; public class ReflectUtil { public static void SetProperty(Object entity, String Key, String Value) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, ParseException { Class clazz = entity.getClass(); Method[] methods = clazz.getMethods(); for (Method cc : methods) { String name = cc.getName(); if (name.startsWith("set")) { Class[] type = cc.getParameterTypes(); if (type.length == 1) { String ParamName = Character.toLowerCase(name.charAt(3)) + name.substring(4); String ParamType=type[0].getName(); System.out.println(ParamType); if ("java.lang.String".equals(ParamType)) { cc.invoke(entity,new Object[] {Value}); } else if ("java.lang.Integer".equals(ParamType)||"int".equals(ParamType)) { cc.invoke(entity,new Object[] {Integer.parseInt(Value)}); } else if ("java.util.Date".equals(ParamType)) { cc.invoke(entity,new SimpleDateFormat("yyyy-MM-dd").parse(Value));//可自定义
<span style="white-space:pre"> </span> //在BeanUtil中支持的是java.sqL.Date } else if ("java.lang.Boolean".equals(ParamType)) { cc.invoke(entity, new Object[] {Boolean.valueOf(Value)}); } else if ("java.lang.Long".equals(ParamType)) { } } } } } }
相关文章推荐
- spring ioc中实例化bean以及依赖注入bean和基本类型属性简单实现方案
- 如何让xdoclet 的spring 标签支持java.util.Map类型属性的注入
- js中的四种类型的属性、方法,以及闭包的概念
- javascript 三种方法实现获得和设置以及移除元素属性
- java 可变参数方法不支持多个可变参数以及多种类型的替代方法
- spring ioc容器注入的集中方式,以及属性注入的集中依赖,继承,使用SPEL表达式,ioc容器的生命周期,bean的几种工厂方法配置方式,bean的自动装配
- 判断一个类是否支持某属性和方法以及如何判断IOS的版本
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- python 7-6 如何使用描述符对实例属性做类型检查,分别实现set,方法,在set内使用isinstance做类型检查
- Winform开发框架中实现多种数据库类型切换以及分拆数据库的支持-伍华聪
- 使用commons-lang.jar包以及反射机制实现javabean的equals,hashCode和toString三个方法重写
- 【转】NET中反射实现 可空类型 与基础类型的转换 以及获取指定属性的大小问题
- Ajax - JavaScript之实现私有属性、像C++和Java一样支持基于类的继承方法之例子
- 如何判断一个类是否支持某属性和方法以及如何判断IOS的版本
- C++的类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast(dynamic_cast还支持交叉转换,const_cast将一个类的const、volatile以及__unaligned属性去掉)
- 85---ajax实现的传统方式以及jquery方式,jquery方式的五种方法,json对象的转换方法, JSON类型的Result
- javascript 三种方法实现获得和设置以及移除元素属性
- Winform开发框架中实现多种数据库类型切换以及分拆数据库的支持
- Spring属性注入、构造方法注入、工厂注入以及注入参数(转)
- 如何判断一个类是否支持某属性和方法以及如何判断IOS的版本