使用場景:
項目中不同模塊對某些數據的權限控制是不一樣,此時可以利用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