J'ai commencé à écrire Java et à utiliser des annotations.
Soudain, je me suis demandé ce qui se passerait si le nom de l'annotation que j'ai faite chevauchait avec une autre bibliothèque? à propos de ça.
Dans le cas d'une classe, vous pouvez utiliser le même nom pour la classe en l'indiquant explicitement avec un nom de package, mais je ne pouvais pas imaginer que le nom du package serait attaché à l'annotation, j'ai donc fait une simple annotation. ..
Tant que vous séparez les noms des packages, vous pouvez créer une classe avec le même nom, vous devriez donc pouvoir la créer, j'ai donc créé des annotations A pour chacun des packages a et b.
package a;
public @interface A {
}
package b;
public @interface A {
}
C'est très simple car il n'y a pas de traitement.
Utilisons-le! À la suite du codage en le laissant à intelliJ, il est devenu comme ci-dessous
import a.A;
public class Main {
@A //Ceci est une annotation A déclarée par importation
// @a.A //C'est la même chose que ↑! J'ai commenté parce que je me fâche, mais bien sûr, cette façon d'écrire est OK
@b.A
public static void main(String[] args){
}
}
Le nom du package est entré tel quel.
C'est peut-être une histoire célèbre pour les ingénieurs Java, mais même si vous portez un nom d'annotation, vous pouvez l'utiliser correctement comme une classe. Et cela semble difficile tant que vous ne vous y êtes pas habitué, car cela vous semble un peu inconfortable si le nom du package est attaché à l'annotation. J'ai été soulagé pour le moment qu'il n'y avait pas de problème même si les noms des annotations se chevauchaient entre les bibliothèques.
Recommended Posts