亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java注解獲取其字段的值

Java注解獲取其字段的值

喵喔喔 2021-07-13 17:15:54
是否可以將參數的值傳遞給注釋?例如:@MyAnnot final List<String> list;我希望將 的內容list傳遞給MyAnnot
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

使用標準 Java 無法滿足您的要求。


注解是類的一種形式,它的實例可以附加到程序的各種元素上;例如類、方法、字段、參數等。對于保留策略注解RUNTIME,應用程序使用反射來檢索與相關聯的注釋Class,Method,Field等等。


問題在于注釋與(有效地)句法元素相關聯,而不是這些元素的實例。例如:


    public class Thing {

        @MyAnnot

        final List<String> list;

    }

我們可以使用反射來找到 的Class對象Thing,以及 的Field對象list。從那里,我們可以獲得@MyAnnot與Field.


但是,Class,Field和@MyAnnotinstance 與您的Thing類的任何特定實例無關。如果您想list通過@MyAnnot注釋(以某種方式)獲得 的值,則需要(以某種方式)知道您在談論哪個實例。


您的問題的另一種解釋是希望(以某種方式)每次您的應用程序分配給Thing對象的list變量時,分配的值也會傳遞給@MyAnnot注釋。JVM 不會這樣做。這不是注釋的標準行為。理論上可以實現這樣的功能(例如,通過一些英勇的字節碼重寫),但我不知道任何示例。


查看完整回答
反對 回復 2021-07-29
  • 1 回答
  • 0 關注
  • 496 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號