2012-10-24 41 views
4

我不確定是否有辦法做到這一點,但我想有一個只對類實現特定接口有效的類的註釋。僅對實現特定接口的類有效的Java Annotation?

註釋的目的是讓管理者知道它需要將該類的一個實例添加到它的一組被管理對象中。因此,如果在編譯時無法添加該限制,那麼在運行時處理這個問題的最佳模式是什麼?

背景: 目前我有一個應用程序,允許用戶執行對一組預先定義的操作字符串[]在單個串輸出結果中,該動作是由場景分組,我有一個枚舉每個場景中定義了這些動作,以及一個具有切換這些枚舉的類來調用單個方法(全部在該類中),這意味着添加單個動作涉及代碼中幾個區域的更改,並且我想增加它通過允許菜鳥開發人員只需要知道他們需要編寫的單個類,就可以將該操作添加到正確的列表中並自動提供,從而實現可維護性。

我決定採用的解決方案是開發人員將實現一個Action Interface,然後添加一個註釋以註冊具有所需場景/場景的Action,並隔離對創建單個類的任何新更改。

回答

2

你可以使用一個marker interface,它在類中或多或少地是註釋的前身。如果你定義它來擴展你提到的接口,你可以確定任何標有它的類也實現了你的接口。

另一方面,如果你的接口僅僅因爲這個原因而存在,你可以創建規則「實現這個接口的所有類」。

當然,這一切都假設您可以控制管理器創建實例。

+0

換句話說一個空接口?這是不必要的,因爲我使用的界面有一些結構,並且足以作爲標記?我想要註釋,因爲管理員將「操作」分隔爲適用於不同場景的組。我會爲我的問題添加一些背景。 – Link19

+1

是的,一個空的界面。您可以爲每個場景製作一個界面,每個界面都擴展您的Action界面。這樣,其他開發人員只需要實施適當的場景界面。註解也可以工作,但是在編譯時你不能確保實現了正確的接口。 –