interface:
En général, une interface expose un contrat sans exposer les détails d'implémentation sous-jacents. Dans la programmation orientée objet, les interfaces définissent des types abstraits qui exposent le 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 contient 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 ensuite 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