code: private static <OriginObject, TargetObject> TargetObject setValue(OriginObject originObject, TargetObject targetObject, Class<TargetObject> targetClass) {
  
          Field[] targetFields = ReflectUtil.getFieldArrayIncludeSupClassExcludeUID(targetClass);
  
          Field originField = null; //目标字段类型
  
          Object originValue = null; //原始对象属性值
          Object targetValue = null; //目标对象属性值
  
          //从目标对象中找原始对象的属性方式，
          for (Field targetField : targetFields) {
  
              originField = ReflectUtil.getField(originObject.getClass(), targetField.getName());
  
              if (originField == null) { //目标对象有，但是原始对象中没有
                  continue;
              }
  
              if (Modifier.isStatic(originField.getModifiers())) {
                  continue;
              }
  
              targetField.setAccessible(true);
              originField.setAccessible(true);
  
              originValue = ReflectUtil.getFieldVal(originObject, targetField.getName());
              if (originValue == null) { //从原始对象中获取的字段属性为null
                  continue;
              }
  
              targetValue = ValueCast.cast(targetField, targetObject, originValue);
  
              if (targetValue != null) {
                  try {
                      targetField.set(targetObject, targetValue);
                  } catch (IllegalArgumentException e) {
                      e.printStackTrace();
                  } catch (IllegalAccessException e) {//为目标属性赋值失败
                      e.printStackTrace();
                  }
              }
          }
  
          return targetObject;
      }
docs: 为对象属性复制参数值
  <p>Function: setValue</p>
  <p>Description: 静态字段将不会处理</p>
  
  @param targetObject
  @return
  @author acexy@thankjava.com
  @date 2016年1月11日 上午10:42:16
  @version 1.0