溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中如何使用反射對負(fù)數(shù)進(jìn)行排查

發(fā)布時(shí)間:2021-10-15 12:00:31 來源:億速云 閱讀:157 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI