注释:限制对带注释的类的引用

时间:2012-06-13 09:18:58

标签: java annotations definition

我认为这是不可能的,但也许我错了。所以我问你,如果可能的话。 ; - )

如果我定义一个只接受类引用的注释,它可以扩展某些接口或类:

 Class<? extends ServiceProviderIF> serviceIFProvider();

在这个注释中我只能添加一些扩展ServiceProviderIF的类。 我的问题:这样的定义是否也适用于另一个注释?这意味着伪代码就像这样

 Class<? contains AnnotationXYZ> classReferences();

AnnotationXYZ是另一个注释定义。并且只有通过包含此注释才能接受应添加的类。

TIA和最好的问候,Oli

2 个答案:

答案 0 :(得分:3)

不,这是不可能的。泛型类型只接受类型。并且注释不定义类型。

答案 1 :(得分:1)

这是不可能的。可以在任何类型(类,接口)上设置注释,但Java方法不能返回包含来自不同层次结构的多类型类型。换句话说,您应该将具有注释AnnotationXYZ的所有类放在某个接口或类Blabla下的同一层次结构中,然后使用类型<? extends Blabla>通配符。