我正在尝试创建一个可以接受多个类作为输入的注释。典型用法是
@Prerequisites{FirstPrerequisite.class, SecondPrerequisite.class}
为此,我可以创建一个注释,如下所示
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface Prerequisites {
public Class<?>[] value();
}
我想限制先决条件注释中允许的类型。如果我给出像public Class<? extends Dependency>[] value();
这样的东西,那么问题是我的FirstPrerequisite和SecondsPrerequisite可以从同一类型扩展。我尝试了以下但似乎没有工作,他们正在给出编译错误。
public Class<? extends Dependency & TestCaseStep>[] value();
public Class<? extends Dependency , TestCaseStep>[] value();
public Class<T extends Dependency & TestCaseStep>[] value();
如何绑定泛型以获取两种不同类型的输入?
答案 0 :(得分:0)
一个选项是创建标记接口并让您的类实现接口。然后,您可以提供该接口类型的绑定。
另一种方法是简单地在运行时而不是在编译时移动约束检查。让注释处理器验证提供的Class
参数。