簡體   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