您的位置:首页 > 编程语言 > Java开发

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

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)) {

}
}
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐