利用Java反射機制實現動態方法

使用場景:

項目中不同模塊對某些數據的權限控制是不一樣,此時可以利用Java的反射機制來實現動態的權限檢測,減少代碼的耦合性。

主要代碼:

            //targetNameMethodStr:XX.XX.XXX的路徑地址
            String targetNameMethod = targetNameMethodStr.substring(targetNameMethodStr.lastIndexOf(".") + 1);
			String className = targetNameMethodStr.substring(0, targetNameMethodStr.lastIndexOf("."));
			try {
				Class clazz = Class.forName(className);
				Method method = clazz.getDeclaredMethod(targetNameMethod, String.class,int.class,int.class,User.class);
				boolean isAuthorize = (boolean) method.invoke(clazz.newInstance(), fMReplyFName,fieldid,formmodebillId,user);
				rs.writeLog("isAuthorize()執行返回結果:"+isAuthorize);
				return isAuthorize;
			} catch (Exception e) {
				e.printStackTrace();
				return false;
			}

知識點:
getDeclaredMethod
invoke

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章