在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 - 为开发人员打造的低代码开发平台


JerryMa
92 声望26 粉丝

Diboot 低代码开发平台作者