您好,登錄后才能下訂單哦!
這篇文章主要介紹Java中如何使用反射對負(fù)數(shù)進(jìn)行排查,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
1. 很久沒有寫反射了,好多方法忘記了下面一個(gè)對負(fù)數(shù)的檢查列子,不是很好,湊活用吧
public class NumberUtil { /** * 返回對象屬性,對象屬性為double 不能為負(fù)數(shù),為負(fù)數(shù)會提醒 *@Title:checkNumFilter *@Description:TODO * @Param:@param obj * @Param:@return *@return :boolean * @throws SecurityException * @throws NoSuchMethodException * @throws InvocationTargetException * @throws IllegalArgumentException * @throws IllegalAccessException *@throws *@author :kuchawyz2019年10月10日 */ public static boolean checkNumFilter(Object obj) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // TODO Auto-generated method stub if(obj != null){ Class<?> clz = obj.getClass(); Field[] filds = clz.getDeclaredFields(); for(Field field :filds){ if(field.getGenericType().toString().equals("double")){ String methodName = "get"+upperCase(field.getName()); Method m = obj.getClass().getDeclaredMethod(methodName); double val = (double) m.invoke(obj); if(val < 0){ throw new ErrorFormateException("你傳入的數(shù)字有負(fù)數(shù)的"); } } } return true; } return false; } /** * 對給定的字符串首字母變成大寫 * (這里先將字符串轉(zhuǎn)為字符數(shù)組, * 然后將數(shù)組的第一個(gè)元素,即字符串首字母,進(jìn)行ASCII 碼前移, * ASCII 中大寫字母從65開始,小寫字母從97開始,所以這里減去32) *@Title:upperCase *@Description:TODO * @Param:@param str * @Param:@return *@return :String *@throws *@author :kuchawyz2019年10月10日 */ public static String upperCase(String str) { char[] ch = str.toCharArray(); if (ch[0] >= 'a' && ch[0] <= 'z') { ch[0] = (char) (ch[0] - 32); } return new String(ch); } }
以上是“Java中如何使用反射對負(fù)數(shù)進(jìn)行排查”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。