Spring中獲取代理對象的目標類Class及Class中的泛型參數的方法

在Spring裏如果你通過AplicationContext獲取Bean實例,你拿到的可能是一個被Spring代理的對象實例,如果你需要獲取這個代理對象的目標類Class該怎麼做呢?

也許你百度了半天找到的解決方案大都是要自己寫上一大段蹩腳的代碼,忘了那個過時的方案吧,只需要調用Spring的AopUtils,一行代碼搞定。

AopUtils.getTargetClass(yourObjectInstance);

這種場景Spring內部肯定經常需要,用Spring自己的解決方案纔是最合理的選擇。

類似的,當你需要從類定義中提取泛型參數的對象Class,也可以藉助Spring的方案:

ResolvableType resolvableType = ResolvableType.forClass(yourClass).getSuperType();
ResolvableType[] types = resolvableType.getGenerics();
return types[yourParamIndex].resolve();

更多極簡封裝,請關注diboot github


Diboot - 簡單高效的自動化開發助理 (歡迎star)

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