Est-il possible de limiter uniquement les annotations à une liste? Alors disons que j'ai deux annotations:Autoriser uniquement les annotations dans une liste
(1) Foo.class
(2) Bar.class
Lors de la déclaration d'une liste, je veux seulement permettre l'inclusion des annotations, mais tout le reste se traduire par une erreur de compilation:
List<Something> list = new ArrayList<Something>();
list.add(Foo.class);
list.add(Bar.class);
list.add(String.class); // bad
Si ce qui précède est-il même possible, est-il alors possible de le restreindre aux types d'annotations? J'entends par là uniquement les annotations groupées d'une manière ou d'une autre. Par exemple, si j'ai les annotations suivantes:
(1) Shark.class
(2) GoldFish.class
(3) Lion.class
Et je veux seulement permettre des annotations qui vivent dans l'eau. Par conséquent, l'ajout de Lion.class à la liste entraînerait une erreur de compilation en raison de son comportement amoureux des terres.
Merci, après un peu plus de jeu, j'ai trouvé la solution à la première partie du problème. Et oui, je ne pensais pas que la deuxième partie était possible, car les interfaces ne permettaient pas le sous-typage. Merci pour la réponse! – digiarnie