利用反射做类参数的校验
需求描述
业务需求描述:对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
利用反射做类参数的校验相关推荐
- 利用反射实现类的动态加载
为什么80%的码农都做不了架构师?>>> //首先定义一个接口来隔离类: public interface Operator { // public java.util.Lis ...
- 利用反射做一个简易 Spring IOC 容器,模仿其装配功能
点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/wenwenaier/article/ details/115549343 自己用代码模仿一个简易的SpringIOC容器,模仿 ...
- 利用反射获得类的public static/const成员的值
首先,我们定义一个类: class CDynamic{ #if truepublic const string TableName = "p_battlerecord"; // O ...
- C# 利用反射调用类下的方法
//1.Load(命名空间名称,即程序集),GetType(命名空间.类名) Type type = Assembly.Load("DapperNet").GetType(&quo ...
- 利用反射获取类或者方法或者字段上的注解的值
从JDK1.5之后,注解在各大框架上得到了广泛的应用.下面这个例子中,你可以判断一个类或者方法或者字段上有没有注解,以及怎么获取上面的注解值.话不多说,代码如下: AnnotationTest01.j ...
- PHP利用反射根据类名反向寻找类所在文件
有时候分析源码时,会被博大精深的层层代码搞得晕头转向,不知道类是定义在哪个文件里的,有时候IDE所提供的方法声明未必准确.在这种情况下,我们可以利用反射找到类所在的文件. 在你发现实例化类的地方(例如 ...
- JAVA的反射机制==用反射分析类的实现
反射的概念:能够分析具体类的能力的程序称为反射 (JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及 ...
- .NetCore 利用反射处理RESTful的更新自动赋值
背景 在RESTful Api模式开发Api,Patch更新时,频繁的遇到不同类型但属性相同的Dto到Model字段赋值的情况, 网上通用的类库是AutoMapper,但遇到了问题,查了Git也提出了 ...
- 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分
代码 /*第二题:利用接口做参数,写个计算器,能完成加减乘除运算.(1)定义一个接口Compute含有一个方法int computer(int n, int m).(2)设计四个类分别实现此接口,完成 ...
最新文章
- .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
- POJ 1251 Jungle Roads
- 如何高性能的给UIImageView加个圆角
- form提交后,jquery 显示 文本框选择值和下拉框选中值
- python一切皆对象的理解_在 Python 中万物皆对象
- 推公式hdu2298
- 如何在ASP.NetCore增加文件上传大小
- 云栖日报丨收购中天微,阿里芯了解一下!
- Best Coder Round#25 1003 树的非递归访问
- mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
- MyBatis-Plus-Generator配置
- python接受前端传递的参数
- 服务器pe 装linux,微PE工具箱增加安装Linux/Ubuntu/Centos/deepin系统菜单
- arXiv上引用文章在bibtex下的引用格式
- 行业揭秘:A股日内“T+0” 赚钱的方法
- mac上文字识别(Tesseract-OCR for mac )
- html调用矢量小图标的方法,Web 前端矢量小图标的使用方法
- python爬虫GUI工具,tkinter网易云歌单歌曲下载器
- 什么邮箱最好用?主流邮箱品牌如何选择
- 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘