需求描述
業務需求描述:對webservice接口參數校驗
代碼實現
/*** 字符串長度校驗* * @param str* @param len* @return 合法(true),不合法(false)*/public static boolean check(String str, int len) {if (null != str && str.length() > len) {return false;}return true;}/*** 參數校驗* * @param data* @return 合法(true),不合法(false)* @throws IntrospectionException* @throws InvocationTargetException* @throws IllegalArgumentException* @throws IllegalAccessException*/public static List<String> checkParamLength(Object obj)throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {List<String> list = new ArrayList<String>();Class clazz = obj.getClass();Field[] fields = clazz.getDeclaredFields();for (Field field : fields) {String key = field.getName();PropertyDescriptor descriptor = new PropertyDescriptor(key, clazz);Method method = descriptor.getReadMethod();String value = (String) method.invoke(obj);if (!check(value, Constants.ParamMap.get(key))) {list.add("error param: " + key + "=> actualLen: " + value.length() + " maxLen: "+ Constants.ParamMap.get(key));}}return list;}
?
后續會使用反射機制中的【注解】實現這個功能。