利用反射做类参数的校验
生活随笔
收集整理的這篇文章主要介紹了
利用反射做类参数的校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求描述
業務需求描述:對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;}?
后續會使用反射機制中的【注解】實現這個功能。
轉載于:https://www.cnblogs.com/Joy-Hu/p/7678355.html
總結
以上是生活随笔為你收集整理的利用反射做类参数的校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻松访问 Android 系统源码与下载
- 下一篇: npm eject 暴露webpack报