2017-10-20 112 views
-1

這可能嗎?更改方法註釋的值(屬性) - JAVA

我想換一個註解的值,是這樣的:

方法(Listener.class(接口)):

@xAnnotation(x=15) 
public final void xMethod() { 
} 

代碼:

public final void xMethod1(Listener lnr) { 
    if (boolean_) { 
     changeXvalue(lnr, 20); // This should change the x value. 
    } 
    registerListeners(lnr); // Listeners will be registered according the 'x' value. 
    } 
+0

歡迎來到SO。本網站不是代碼編寫服務,不適用於提供完整的解決方案。預計用戶將展示一些努力和代碼,而SO在此期間將幫助您解決具體的編程問題。你有沒有嘗試過任何東西?請閱讀:https://stackoverflow.com/help/asking –

+0

@Maciej Jureczko - 謝謝你的-1 –

+0

你甚至*嘗試*自己尋找答案嗎?我使用網絡搜索引擎在5秒內找到多個鏈接。 –

回答

0

更改註解值不正式支持。請注意,根據Retention,註釋在運行時可能甚至不存在。如果是的話,它們會在類級別編譯爲字節碼並且是不可變的。

作爲一種解決方法,您可以創建靜態getter/setter並將其初始化爲類的靜態初始值設定項中的屬性值。

+0

我正在使用一個庫,根據x值在Collections類中添加Listener.class。低值將首先超過高。 –

+0

在這種情況下,您可以通過繼承Listener類並重新定義其註釋值來解決問題。 – jurez

+0

我試着註解設置一個常量值的值(private static final int value = boolean_:15?20),但這是不可能的 –