获取cdi托管bean的真正类名

时间:2012-10-17 19:36:05

标签: java cdi

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

适用于Weld

相关问题