code: public static boolean setValue(Field field, Object object, Object value) {
  		String fieldName = field.getName();
  		String setMethodName = "set" + firstLetterUpperCase(fieldName);
  		value = TypeAutoCast.cast(value, field.getType());
  		
  		Method method = null;
  		try {
  			method = object.getClass().getMethod(setMethodName, value.getClass());
  		} catch (Exception e) {
  		}
  		
  		if(method != null) {
  			try {
  				method.invoke(object, value);
  			} catch (Exception e) {
  				LOGGER.error("method invoke", e);
  				return false;
  			}
  		} else {
  			field.setAccessible(true);
  			try {
  				field.set(object, value);
  			} catch (Exception e) {
  				LOGGER.error("method invoke", e);
  				return false;
  			}
  		}
  		
  		return true;
  	}
docs: 先按照setter的约定寻找setter方法(必须严格匹配参数类型或自动转换)<br>
  如果有则按setter方法，如果没有则直接写入
  
  @param field
  @param object
  @param value