4

有没有办法获取 CDI 托管实例的真实类名?我需要真实的类名来匹配它,但是在调用 getClass 方法时我得到了客户端焊接代理名称。非常感激。

4

3 回答 3

4

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

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

与焊接一起使用

于 2017-12-20T12:29:56.433 回答
2

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

于 2012-11-05T17:08:00.443 回答
0

您必须查看 Weld 实现,看看如果您 getInvocationHandler 然后调用该方法,InvocationHandler 是否会真正将其提供给您。

于 2012-10-18T16:27:24.530 回答