我想知道如果我可以使用自定義註釋在註釋之後調用某種方法。例如,我有一個類,其中包含一些設置,可以通知對象某些內容已經更改(例如,用戶在設置面板中更改了某些內容)。並非所有的聽衆都對所有類型的事件感興趣,所以MyEvent
是enum。現在我有結構是這樣的:註釋後可以使用註釋來調用方法嗎?
class Settings
{
private ArrayList<Listeners> listeners;
private void notifyListeners(MyEvent e)
{
// notify all listeners that something was changed
}
public void setSomeOption(int value)
{
// validate parameter, store it etc.
notifyListeners(MyEvent.SOME_INTEGER_SETTING_CHANGED);
}
}
收聽對象必須檢查事件的類型和忽略它或執行一些動作,但這裏並非如此。
我很感興趣,如果我可以用註解實現這一點,像這樣
@NotifyAnnotation(MyEvent.SOME_INTEGER_SETTING_CHANGED)
public void setSomeOption(int value)
{
// validate parameter, store it etc.
// NO NEED TO CALL NOTIFY HERE - WILL BE HANDLED BY ANNOTATION
}
在JUnit例如,我們有@Before
或@After
註解,我想知道如果的JUnit有自己的註解解析器處理註釋的方法這樣,或者這種行爲可以做得更簡單,因爲註釋可以是@Retention(value=RUNTIME)
。
我知道在這個例子中它可能看起來過於複雜,並且調用notifyListeners()
非常簡單,但我不知道是否可以按照我描述的方式使用註釋,如果是,我可以得到一些提示嗎?我不期望現成的解決方案,只是一個提示,如果這是可能的,我應該考慮什麼。
這(種)聽起來像使用方面。這是你指的是什麼? – Stultuske
@Stultuske我對方面並不是很熟悉,我只在Spring文檔 – Kuba
中閱讀過有關它們的內容。您可以配置「每個方法的名稱都像xxx一樣 - 緊接着是X功能」。全部取決於你如何配置它。 – Stultuske