在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