我的应用程序允许开发人员创建一些插件。符合基本抽象类确定的要求。每个插件都必须有一个名称。我想通过使用注释来解决这个问题。所以,我定义了自己的注解名称如下:
@Retention(RetentionPolicy.RUNTIME)
public @interface Name {
public String value();
}
我把这个注释和基础抽象类 CommonPlugin 放到单独的模块中,并将其构建为 JAR 文件以与开发人员共享。
然后我导入包并将这个注释放在我测试插件的定义之前,如下所示:
@Name("Test plugin")
public class TestPlugin extends CommonPlugin {
然后我反映了所有给定的插件,URLClassLoader
并且在 TestPlugin 类中找不到必要的注释。但是如果我将 Name 注释定义到 TestPlugin 类所在的同一个包中,我可以找到它。应该是这样还是我做错了什么?