Java反射包下的Method類中的Invoke方法

      網友投稿 800 2025-03-31

      Method的invoke方法

      1 先校驗AccessibleObject的override字段

      指示此對象是否覆蓋語言級別的訪問檢查。初始化為“ false”

      字段,方法和構造方法都會使用此字段

      注意:為了安全起見,此字段在此反射包外部均不可見。

      Java反射包下的Method類中的Invoke方法

      AccessibleObject是Method,Field,Constructor的父類

      可調用

      setAccessible

      方法改變,如果設置為true,則表示可以忽略訪問權限的限制,直接調用。

      便利方法來設置accessible標志對象的數組具有單個安全檢查(效率)。

      首先,如果有安全管理器,它checkPermission方法被稱為一個ReflectPermission(“suppressAccessChecks”)的許可。

      甲SecurityException如果升高flag是true ,但任何輸入的元件中的可訪問性array可以不改變(例如,如果元素對象是Constructor對象的類Class )。 在這樣一個SecurityException的情況下,對象的可訪問性被設置為flag數組元素高達(但不包括),用于其中發生異常的元件; 元件以外(并包括)該元素的對發生異常的可接近不變。

      2 false,訪問權限校驗

      Reflection.quickCheckMemberAccess方法先檢查是不是public的

      如果不是再用Reflection.getCallerClass(1)方法獲得到調用這個方法的Class,然后做是否有權限訪問的校驗,校驗之后緩存一次,以便下次如果還是這個類來調用就不用去做校驗了,直接用上次的結果

      3 調用MethodAccessor的invoke方法

      每個Method對象包含一個root對象

      用于共享MethodAccessors

      此分支結構//僅當前只有兩個級別深度(即一個根Method和可能指向它的許多Method對象)

      如果此分支結構曾經包含循環,則可能會發生死鎖

      root對象里持有一個MethodAccessor對象

      設置此Method對象的MethodAccessor和(遞歸)其根

      獲得的Method對象相當于一個root的鏡像,所有這些Method對象共享root里的MethodAccessor對象(這個對象由ReflectionFactory方法生成,ReflectionFactory對象在Method類中是static final的由native方法實例化)。

      ReflectionFactory生成MethodAccessor

      如果noInflation的屬性為true則直接返回MethodAccessorGenerator創建的一個MethodAccessor

      否則返回DelegatingMethodAccessorImpl,并將他與一個NativeMethodAccessorImpl互相引用

      但DelegatingMethodAccessorImpl執行invoke方法的時候又委托給NativeMethodAccessorImpl了

      DelegatingMethodAccessorImpl

      DelegatingMethodAccessorImpl 類對象就是一個代理對象,主要負責調用被代理對象 delegate 的 invoke() 方法

      var1 就是控制器類

      var2 就是 req 和 resp

      參考

      https://www.cnblogs.com/onlywujun/p/3519037.html

      https://binshao.site/2019/04/03/Reflection/

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在wps表格中添加附件(WPS添加附件)
      下一篇:Excel中表格數字輸入后會變化的解決方法
      相關文章
      国产L精品国产亚洲区久久| 亚洲AV午夜福利精品一区二区| 亚洲人成网77777色在线播放| 国产成人亚洲精品播放器下载| 久久亚洲国产最新网站| 亚洲日本国产乱码va在线观看| 亚洲精品免费在线观看| 亚洲日韩乱码中文无码蜜桃臀网站| 国产成人99久久亚洲综合精品| 亚洲欧洲精品成人久久曰影片 | 亚洲无码视频在线| 亚洲精品国产va在线观看蜜芽| 国产精品亚洲色婷婷99久久精品| 亚洲AV无码一区二区三区网址| 亚洲aⅴ无码专区在线观看| 亚洲性色精品一区二区在线| 亚洲精品无码不卡在线播放| 亚洲6080yy久久无码产自国产| 国产亚洲一卡2卡3卡4卡新区 | 亚洲精品无码永久中文字幕| 国产精品亚洲а∨无码播放| 国产亚洲综合久久系列| 亚洲AV永久青草无码精品| 色拍自拍亚洲综合图区| 亚洲福利电影一区二区?| 亚洲一区精品视频在线| 亚洲熟女综合色一区二区三区| 亚洲熟妇av午夜无码不卡| MM1313亚洲国产精品| 亚洲精品和日本精品| 亚洲精品国产精品乱码不卡√| 亚洲高清国产拍精品26U| 久久水蜜桃亚洲av无码精品麻豆| 亚洲成A∨人片在线观看无码| 国产成人精品日本亚洲11| 久久精品熟女亚洲av麻豆| 国产精品亚洲精品日韩已方| 国产亚洲一区二区精品| 亚洲美女色在线欧洲美女| 亚洲天堂免费在线| 日产国产精品亚洲系列|