我正在为我的项目使用简单的策略模式。 我需要在某些枚举中添加每个具体的策略接口类以供将来使用。为了方便起见,我使用了一个临时接口,应该在稍后进行替换,而不是实现每个具体的类来完成第一个设计。如何在程序级别确定某些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