L'interface :
En général, une interface expose un contrat sans exposer les détails de la mise en œuvre sous-jacente. Dans la programmation orientée objet, les interfaces définissent des types abstraits qui exposent un comportement, mais ne contiennent aucune logique. L'implémentation est définie par la classe ou le type qui implémente l'interface.
@interface : (Type d'annotation)
Prenons l'exemple ci-dessous, qui a fait l'objet de nombreux commentaires :
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
Au lieu de cela, vous pouvez déclarer un type d'annotation
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
qui peut alors annoter une classe comme suit :
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
PS : De nombreuses annotations remplacent les commentaires dans le code.
Référence : http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html