模仿apache jar包中的,copyProperty方法

简单的写法,没有对特殊类型进行处理,不过,本人,经过测试,发现,如果,你的Object 类里面的属性都是String类型的话。那就使用我下面这个方法。没有问题的。
如果,有其他的类型的话。那就要一一去判断了,再去赋值。关键的问题就是,Map中取出来的是什么类型的值,你的对象属性是什么类型的值,两者,一致了。复制就不会
有问题了。

  /**
   * 根据传入的对象,与map
   * 把map中与传入对象对应属性的值赋值给
   * 对象。
   * @param o
   * @param map
   * @return
   */
  private void copyProperty(Object o,Map map){
	  
	  Class ownerClass = o.getClass();        
	  Set set = map.keySet();
	  Iterator it = set.iterator();
	  try{
	  while(it.hasNext()){
		  String fieldName = it.next().toString();
		  Field field = ownerClass.getDeclaredField(fieldName.toLowerCase());   
		  field.setAccessible(true);
		  Object value  = map.get(fieldName);
		  if(value!=null){
			  //对Timestamp对象进行处理
			  if(!(value instanceof String)){
				  field.set(o, value.toString());
			  }else{
				  field.set(o, value);
			  }
		  }
	  }
	  }catch(Exception e){
		  e.printStackTrace();
	  }
  }

有什么不足之处,还望大家,纠正,一起学习,分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值