我不确定是否有办法做到这一点,但我希望有一个Classes的注释,它只对实现特定接口的类有效。
注释的目的是允许管理员知道它需要将该类的实例添加到其托管对象集。因此,如果在编译时无法添加该限制,那么在运行时处理此问题的最佳模式是什么?
背景 目前我有一个应用程序允许用户在一个字符串[]上执行一组预先定义的操作,这些操作导致单个字符串输出,操作按场景分组,并且每个场景都有枚举,并定义了这些操作,以及单个类,在这些枚举上有一个切换来调用单个方法(都在该类中),这意味着添加单个动作涉及到代码中几个区域的更改,我想通过允许新手开发人员只需要来增加它的可维护性要知道他们需要编写的单个类,它会将操作添加到正确的列表中并自动提供。
我决定使用的解决方案是创建一个开发人员将实现的Action Interface,然后添加一个注释来注册具有所需场景/场景的Action,将任何新的更改隔离到单个类的创建中。 / p>
答案 0 :(得分:2)
你可以使用marker interface,它或多或少是类的注释的前身。如果你定义它来扩展你提到的接口,你可以确定任何标有它的类也实现了你的接口。
另一方面;如果您的界面仅因此而存在,您可以创建规则“实现此界面的所有类”。
当然,这是假设您可以控制 Manager 创建实例。