BeanUtil为javaBean注入属性支持类型 以及个人的实现方法

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

		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值