繁体   English   中英

获取cdi托管bean的真正类名

[英]get real class name for cdi managed bean

有没有办法获取CDI托管实例的真实类名? 我需要在其上匹配真实的类名,但是在调用getClass方法时我获得了Client Weld Proxy名称。 非常感激。

据我所知,没有可靠的方法来掌握代理背后的真正的类。 事实上,毕竟可能没有真正的课程。 我最后做的是检查classname字符串,看它是否匹配类名称附带的疯狂字符串Weld。 如果不是,那么你正在处理真正的阶级。 但如果是,请获取代理的超类。 那是你要找的班级。

你必须查看Weld实现,看看如果getInvocationHandler然后调用方法,InvocationHandler是否会实际给你。

尽管距原始问题已经过去了五年,但这可能会帮助可能遇到同样问题的人。 您可以使用反射获取真实的类名。

bean.getClass().getSuperclass().getName()

与Weld合作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM