仅允许注释到List中

dig*_*nie 3 java annotations

是否可以仅将注释限制为List?所以,假设我有两个注释:

(1) Foo.class
(2) Bar.class
Run Code Online (Sandbox Code Playgroud)

声明List时,我只想允许包含注释,但其他一切都会导致编译错误:

List<Something> list = new ArrayList<Something>();
list.add(Foo.class);
list.add(Bar.class);
list.add(String.class); // bad
Run Code Online (Sandbox Code Playgroud)

如果甚至可以实现上述目的,那么可以将其限制为注释类型吗?我的意思是只允许以某种方式分组的注释.例如,如果我有以下注释:

(1) Shark.class
(2) GoldFish.class
(3) Lion.class
Run Code Online (Sandbox Code Playgroud)

我只想允许生活在水中的注释.因此,将Lion.class添加到List将导致编译错误,因为他喜欢土地.

dou*_*lep 6

我不确定我是否理解你的问题,但我想你需要这个:

List <Class <? extends Annotation>>  x
    = new ArrayList <Class <? extends Annotation>> ();
Run Code Online (Sandbox Code Playgroud)

关于第二部分:我猜不是,因为注释接口不能相互扩展.