2012-10-17 29 views
2

有沒有辦法獲得CDI託管實例的真實類名? 我需要真正的類名來匹配它,但是在調用getClass方法時我得到了Client Weld Proxy名稱。 非常感謝。獲得cdi託管bean的真實類名

+0

是接口可以接受的,或者你想它是進行代理的具體類? – JustinKSU

+0

界面也很好,在我的情況下,我有包裝在CDI中的具體類。 – Arash

回答

2

據我所知,沒有可靠的方法來獲得代理背後真正的類。事實上,畢竟可能沒有真正的課堂。 我最終做的是檢查classname字符串,看它是否與瘋狂字符串匹配Weld附加到類名稱。如果不是,那麼你正在處理真正的課堂。但如果是這樣,請獲取代理的超類。這是你正在尋找的課程。

0

您必須查看Weld實現以查看InvocationHandler實際上是否在getInvocationHandler中實際給它,然後調用該方法。

0

儘管原來的問題已經有五年了,但這可能會幫助可能遇到同樣問題的人。你可以使用反射來獲得真正的課程名稱。

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

作品與焊接