Parfois, les structures de données doivent avoir certaines relations qui ne peuvent pas être directement décrites en Java, mais qui peuvent être vérifiées le plus tôt possible lorsque le code est modifié. Les exemples classiques sont qu'un tableau est assez grand ou que les énumérations dans différents modules ont des membres correspondants. BOOST fournit une fonction «assertion statique» fine en C++ qui fournit même des erreurs demi-décentes lorsque les assertions échouent; est-ce que quelqu'un sait comment construire une facilité d'assertion à la compilation en Java?Comment faire valoir quelque chose à la compilation en Java?
Édition: Je viens juste de voir un exemple parfait: la classe this d'Eclipse a deux tableaux constants supposés avoir la même longueur. Si c'était mon code, j'aimerais que le compilateur me dise s'ils ont des longueurs différentes.
Je ne sais pas que je suis d'accord que "les structures de données doivent avoir certaines relations qui ne peuvent pas être directement décrites en Java." Vos exemples semblent invalides. La relation entre la taille d'un tableau et le reste du programme peut être exprimée en définissant la taille du tableau avec une variable. Et si vous avez un Enum dans un paquet, pourquoi ne le référeriez-vous pas simplement à un autre? En fait, je ne peux pas trouver de raison pour que plusieurs Enums aient des éléments correspondants. Si Foo est censé avoir les mêmes éléments que Bar, pourquoi ne pas utiliser Foo partout? N'est-ce pas le but d'un Enum? –
Pouvez-vous donner un exemple plus spécifique du type de chose que vous aimeriez pouvoir affirmer de cette façon? –