Aperçu des commentaires de Java:
1. Les annotations sont que le compilateur peut voir, ce qui est différent des annotations
2. Trois annotations de base:
@Override dit au compilateur que cela remplace la méthode
@Deprecated Dites au compilateur que la méthode est obsolète
@SuppressWarnings ("non contrôlé") n'arrivent pas
= (valeur = {"non coché"})
3. Les annotations peuvent être utilisées pour remplacer les fichiers de configuration traditionnels
4. À partir de JDK5, Java a ajouté le soutien aux métadonnées (métadonnées), à savoir l'annotation.
Annotations personnalisées et annotations de réflexion
Annotations personnalisées:
1. Créez une nouvelle annotation: (un seul de plus @ symbole que la définition de l'interface)
La copie de code est la suivante:
public @interface myannotation {
//propriété
String who ();
int age ();
String Gender ();
}
2. Définissez l'annotation avec les valeurs par défaut
La copie de code est la suivante:
public @interface youannotation {
String who () par défaut "Tom";
int age () par défaut 0;
String Gender () par défaut "Femme";
}
3. Situation du tableau
La copie de code est la suivante:
public @interface theyannotation {
String [] value ();
}
Métaannotation / métaannotation
Utilisé pour modifier l'annotation. (Vous pouvez afficher le code source de @Override)
Politique d'annotation @retention, utilisée pour spécifier les domaines que l'annotation peut conserver
RetentionPolicy.class
Il y a au niveau du bytecode, mais ne sont pas visibles au niveau de l'exécution (par défaut)
Retentionpolicy.runtime
Les trois niveaux sont visibles et peuvent se refléter pendant l'exécution
RetentionPolicy.Source n'est disponible qu'au niveau du code source et n'est pas visible au niveau du bytecode.
@Target spécifie la portée de l'annotation utilisée
@Documented Écrivez dans le document.
@Inhérence héritabilité, les sous-classes héritées de cette classe ont toujours les caractéristiques de la classe parent comme annotation.
Ex.
Les annotations de définition sont les suivantes:
La copie de code est la suivante:
// Laissez une annotation reflétée au moment de l'exécution
@Retention (RetentionPolicy.runtime)
public @interface dbinfo {
String Driver () par défaut "com.mysql.jdbc.driver";
String url () par défaut "url = jdbc: mysql: // localhost: 3306 / académique";
String mot de passe () par défaut "1234";
String username () par défaut "root";
}
Injection de réflexion:
La copie de code est la suivante:
@Dbinfo
Connexion statique publique getConnection () lève une exception {
// Obtenez le bytecode de cette classe
Class Clazz = Demo2.class;
// Obtenez la méthode publique nommée getConnection () dans cette classe
// Paramètre 1: Nom de la méthode
// Paramètre 2: l'objet bytecode correspondant au paramètre de type de méthode.
Méthode méthode = Clazz.getMethod ("getConnection", null);
// via cette méthode, obtenez l'annotation définie sur la méthode
Dbinfo dbinfo = method.getAnnotation (dbinfo.class);
String Driver = dbinfo.driver ();
String url = dbinfo.url ();
String user = dbinfo.username ();
String mot de passe = dbinfo.password ();
Class.forname (pilote);
return driverManager.getConnection (URL, utilisateur, mot de passe);
}