利用反射做類參數的校驗

需求描述

業務需求描述:對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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280144.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨域的四種方式

本文主要是關于跨域的幾種方式&#xff0c;關于什么是跨域這里就不多說了&#xff0c;寫這個也是為了記住一些知識點的。 一. jsonp jsonp的跨域方式很容易理解&#xff0c;頁面的的每一個script標簽瀏覽器都會發送get請求獲取對應的文本資源&#xff0c;獲取到了之后&#xff…

Linux之read命令使用

ead命令&#xff1a; read 命令從標準輸入中讀取一行&#xff0c;并把輸入行的每個字段的值指定給 shell 變量 1&#xff09;read后面的變量var可以只有一個&#xff0c;也可以有多個&#xff0c;這時如果輸入多個數據&#xff0c;則第一個數據給第一個變量&#xff0c;第二個數…

python之路day10-命名空間和作用域、函數嵌套,作用域鏈、閉包

楔子 假如有一個函數&#xff0c;實現返回兩個數中的較大值&#xff1a; def my_max(x,y):m x if x>y else yreturn mbigger my_max(10,20)print(bigger) 之前是不是我告訴你們要把結果return回來你們就照做了&#xff1f;可是你們有沒有想過&#xff0c;我們為什么要把結…

hive(II)--sql考查的高頻問題

在了解別人hive能力水平的時候&#xff0c;不管是別人問我還是我了解別人&#xff0c;有一些都是必然會問的東西。問的問題也大都大同小異。這里總結一下我遇到的那些hive方面面試可能涉及的問題 1、行轉列&#xff08;列轉行&#xff09; 當我們建設數據倉庫時&#xff0c;我們…

java概述

一、java平臺無關&#xff1a;jvm二、java健壯語言&#xff1a;無指針&#xff0c;語法上無指正&#xff0c;無內存申請與釋放。 三、java核心機制而&#xff1a; jvmjava垃圾收集機制 GC四、java運行過程&#xff1a;源程序&#xff08;.java&#xff09;——》java編譯器——…

時間間隔

計算當前時間與上次執行時間的時間間隔。 NSTimeInterval timetravel [[NSDate date]timeIntervalSinceDate:self.lastPlaySoundDate];if (timetravel<3.0) {DLog("時間太短&#xff0c;。。");}self.lastPlaySoundDate [NSDate date]; 轉載于:https://www.cnb…

.Net+MySQL組合開發(二) 數據訪問篇

一、建立數據庫、表、添加數據這里我們使用圖形化操作的SQL Manager 2005 Lite for MySQL來建立數據&#xff0c;它的操作界面非常類似OFFICE軟件&#xff0c;使用方便、很容量上手、下面開始建立數據庫及表單擊"Creat New DataBase"&#xff1a;新建DB輸入密碼&…

Git vs SVN

一、Git vs SVN Git 和 SVN 孰優孰好&#xff0c;每個人有不同的體驗。Git是分布式的&#xff0c;SVN是集中式的這是 Git 和 SVN 最大的區別。若能掌握這個概念&#xff0c;兩者區別基本搞懂大半。因為 Git 是分布式的&#xff0c;所以 Git 支持離線工作&#xff0c;在本地可以…

.net api 和java平臺對接技術總結

這兩天 一直和京東對接接口&#xff0c;我們用.net api 提供接口&#xff0c;對方用java調用&#xff0c;本來沒什么問題&#xff0c;但是對方對數據安全要求特別嚴&#xff0c;要驗簽&#xff0c;于是噩夢開始了。 1、在傳輸的時候&#xff0c;約定傳輸格式&#xff1a; HttpW…

Burpsuite學習(4)

2019獨角獸企業重金招聘Python工程師標準>>> burpsuite spider模塊通過跟蹤 HTML 和 JavaScript 以及提交的表單中的超鏈接來映射目標應用程序&#xff0c;它還使用了一些其他的線索&#xff0c;如目錄列表&#xff0c;資源類型的注釋&#xff0c;以及 robots.txt 文…

Git刪除分支/恢復分支

這是https://www.cnblogs.com/utank/p/7880441.html的方法&#xff0c;雖然很老現在有點不一樣&#xff0c;但總體還是能用的。 總結就是兩種方法 1.用commit的id恢復 2.用reflog的頭指針恢復 ?刪除一個已被終止的分支 如果需要刪除的分支不是當前正在打開的分支&#xff0c;使…

NetCore2.0Web應用之Startup

為什么80%的碼農都做不了架構師&#xff1f;>>> 作為main函數的程序啟動文件UseStartup 默認就是調用我們的整個應用程序的啟動文件 class Program{static void Main(string[] args){var host new WebHostBuilder().UseKestrel() // 指定WebServer為Kes…

windows XP系統下oracle完整卸載過程

NT環境下&#xff1a; 1、以NT的Administrator 登陸 2、通過控制面版-〉服務&#xff0c;停掉所有ORACLE服務 3、打開注冊表&#xff08;REGEDIT命令&#xff09;&#xff0c;刪除HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 4、打開注冊表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentCont…

Hadoop----hdfs的基本操作

2019獨角獸企業重金招聘Python工程師標準>>> HDFS操作文件的基本命令 1.創建文件夾 $>hdfs dfs -mkdir /user/centos/hadoop 2.展示目錄 $>hdfs dfs -ls -r /user/centos/hadoop 3.遞歸展示 $>hdfs dfs -lsr /user/centos/hadoop 4.上傳文件 $&g…

原生sql實現restful接口調用

index.php <?phpinclude ./Request.php; include ./Response.php; //獲取數據 $dataRequest::getRequest(); $resultResponse::sendResponse($data); echo $result; ?> Request.php <?php class Request{private static $method_typearray(get,post,put,delete,pa…

彈幕效果

<!DOCTYPE html><html> <head> <meta charset"UTF-8"> <title>彈幕效果</title> <script src"../../jquery-1.12.4.min.js" type"text/javascript" charset"utf-8"></script> </h…

基于.NetCore開發博客項目 StarBlog - (21) 開始開發RESTFul接口

1前言最近電腦壞了&#xff0c;開源項目的進度也受到一些影響這篇醞釀很久了&#xff0c;作為本系列第二部分&#xff08;API接口開發&#xff09;的第一篇&#xff0c;得想一個好的開頭&#xff0c;想著想著就鴿了好久&#xff0c;索性不扯那么多了&#xff0c;直接開寫吧~2關…

03 Oracle分區表

Oracle分區表 先說句題外話… 歡迎成都天府軟件園的小伙伴來面基交流經驗~ 一&#xff1a;什么是分區&#xff08;Partition&#xff09;&#xff1f; 分區是將一個表或索引物理地分解為多個更小、更可管理的部分。 分區對應用透明&#xff0c;即對訪問數據庫的應用而言&…

windows獲取本地時間_如何在Windows 8中重新獲得本地登錄

windows獲取本地時間By default a fresh Windows 8 installation prompts you to create a synchronized cloud-enabled login. While there are distinct perks to Microsoft’s live login system, sometimes you just want to keep things simple and local. Read on as we …

如何解決高并發,秒殺問題

相信不少人會被這個問題困擾&#xff0c;分享大家一篇這樣的文章&#xff0c;希望能夠幫到你&#xff01; 一、秒殺業務為什么難做&#xff1f;1&#xff09;im系統&#xff0c;例如qq或者微博&#xff0c;每個人都讀自己的數據&#xff08;好友列表、群列表、個人信息&#xf…