需求描述

业务需求描述:对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

利用反射做类参数的校验相关推荐

  1. 利用反射实现类的动态加载

    为什么80%的码农都做不了架构师?>>>    //首先定义一个接口来隔离类: public interface Operator { // public java.util.Lis ...

  2. 利用反射做一个简易 Spring IOC 容器,模仿其装配功能

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/wenwenaier/article/ details/115549343 自己用代码模仿一个简易的SpringIOC容器,模仿 ...

  3. 利用反射获得类的public static/const成员的值

    首先,我们定义一个类: class CDynamic{ #if truepublic const string TableName = "p_battlerecord"; // O ...

  4. C# 利用反射调用类下的方法

    //1.Load(命名空间名称,即程序集),GetType(命名空间.类名) Type type = Assembly.Load("DapperNet").GetType(&quo ...

  5. 利用反射获取类或者方法或者字段上的注解的值

    从JDK1.5之后,注解在各大框架上得到了广泛的应用.下面这个例子中,你可以判断一个类或者方法或者字段上有没有注解,以及怎么获取上面的注解值.话不多说,代码如下: AnnotationTest01.j ...

  6. PHP利用反射根据类名反向寻找类所在文件

    有时候分析源码时,会被博大精深的层层代码搞得晕头转向,不知道类是定义在哪个文件里的,有时候IDE所提供的方法声明未必准确.在这种情况下,我们可以利用反射找到类所在的文件. 在你发现实例化类的地方(例如 ...

  7. JAVA的反射机制==用反射分析类的实现

    反射的概念:能够分析具体类的能力的程序称为反射 (JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及 ...

  8. .NetCore 利用反射处理RESTful的更新自动赋值

    背景 在RESTful Api模式开发Api,Patch更新时,频繁的遇到不同类型但属性相同的Dto到Model字段赋值的情况, 网上通用的类库是AutoMapper,但遇到了问题,查了Git也提出了 ...

  9. 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分

    代码 /*第二题:利用接口做参数,写个计算器,能完成加减乘除运算.(1)定义一个接口Compute含有一个方法int computer(int n, int m).(2)设计四个类分别实现此接口,完成 ...

最新文章

  1. .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
  2. POJ 1251 Jungle Roads
  3. 如何高性能的给UIImageView加个圆角
  4. form提交后,jquery 显示 文本框选择值和下拉框选中值
  5. python一切皆对象的理解_在 Python 中万物皆对象
  6. 推公式hdu2298
  7. 如何在ASP.NetCore增加文件上传大小
  8. 云栖日报丨收购中天微,阿里芯了解一下!
  9. Best Coder Round#25 1003 树的非递归访问
  10. mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
  11. MyBatis-Plus-Generator配置
  12. python接受前端传递的参数
  13. 服务器pe 装linux,微PE工具箱增加安装Linux/Ubuntu/Centos/deepin系统菜单
  14. arXiv上引用文章在bibtex下的引用格式
  15. 行业揭秘:A股日内“T+0” 赚钱的方法
  16. mac上文字识别(Tesseract-OCR for mac )
  17. html调用矢量小图标的方法,Web 前端矢量小图标的使用方法
  18. python爬虫GUI工具,tkinter网易云歌单歌曲下载器
  19. 什么邮箱最好用?主流邮箱品牌如何选择
  20. 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘

热门文章

  1. 笔记:Java虚拟机运行时数据区
  2. Zabbix的安装(源码安装)
  3. C#OOP之二 变量和表达式
  4. 判断listview是上滑还是下滑的方法
  5. 人生的第一个博客(●'◡'●)ノ♥--开博典礼
  6. 如何在使用摩托罗拉上的RSS阅读器应用进行一次订阅
  7. 一个有关Update类型的存储过程的问题
  8. linux内存管理简介,Linux操作系统的内存管理特性简介 (3)
  9. android自动软键盘,Android自定义软键盘
  10. java中线程的6种状态