我正在爲我的項目使用簡單的策略模式。 我需要在某些枚舉中添加每個具體的策略接口類以供將來使用。爲了方便起見,我使用了一個臨時接口,應該在稍後進行替換,而不是實現每個具體的類來完成第一個設計。如何在程序級別確定某些java類/接口的存在?
這裏是簡單的代碼,我試過了。
public interface Strategy{
public void execute();
}
public interface NeedToImplement extends Strategy {
}
public enum strategyInfo {
A(ConcreteStrategyA.class, "blah blah"),
B(ConcreteStrategyB.class, "blah~~"),
C(NeedToImplement.class, "blah~~");
}
到目前爲止,如果我是管理此代碼的唯一人,並且不要忘記實現每個類,那麼代碼本身不會成爲問題。 但這是團隊的工作,我會分裂每個執行我的團隊成員等等,如果有的話我們的隊員忘記實現任何類,這將導致災難,即使在運行時。
我想確保我們會通知您NeedToImplement
是我的異常或錯誤運行一個程序,一旦存在(就像我可以從@Deprecated
警告) 而我仍然可以編譯沒有從任何代碼編譯錯誤。
第一想法出現的時候在我的腦海中使用自定義的註釋爲NeedToImplement
接口。但實際上我不確定更多細節。 plz闡述細節,如果我的想法是有效的。如果不是,比Ctrl + F更好的建議也會受到讚賞。
你可以將其標記爲過時,你應該得到一個警告。 – immibis 2015-02-12 07:56:48
至於比Ctrl-F更好的東西:在Eclipse中點擊NeedToImplement並按下Ctrl-Shift-G。 – immibis 2015-02-12 07:57:24
Thx提到,就像你提到的,棄用只會產生警告。是否有任何其他方式來使自定義註釋將生成異常,而不是警告? – BinaryProbe 2015-02-12 08:07:37