«Effective Java 2nd Edition» Maruzen Publishing
L'annotation (en anglais: annotation) consiste à ajouter des informations connexes (métadonnées) à certaines données sous forme d'annotation.
[Annotation-Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%8E%E3%83%86%E3%83%BC%E3%82%B7% E3% 83% A7% E3% 83% B3) Citation
Introduit à partir de Java 5 (sorti en 2004)
CalculationTest.java
public class CalculationTest {
/**Cas de test 1*/
@Test
public void sampleTest1() {
//...
}
/**Cas de test 2*/
@Test
public void sampleTest2() {
//...
}
}
@ Test
@ Test
CalculationTest.java
public class CalculationTest extends TestCase{
/**Cas de test 1*/
public void testSample1() {
//...
}
/**Cas de test 2*/
public void testSample2() {
//...
}
}
Indique qu'il s'agit d'une classe de test en héritant de TestCase
Le nom de la méthode qui devient le cas de test commence par test
⇒ Modèle de dénomination
Http://d.hatena.ne.jp/smada564/20110501/1304265351 Référence
tsetSample2
(une faute de frappe), elle ne sera pas exécutée. Pas d'erreurPar exemple, considérons une méthode de test qui s'attend à lancer ʻIllegalArgumentException`.
/**Comment écrire JUnit4*/
@Test(expected = IllegalArgumentException.class)
public void sample() {
//...
}
/**Exemple lorsque l'annotation ne peut pas être utilisée*/
public void test_IllegalArgumentException_sample() {
//...
}
Moche et vulnérable
Compile ne peut pas déterminer si une exception existe --Je ne le remarque pas avant de l'exécuter
Référence de l'article 35 «Effective Java 2nd Edition»
Le servlet peut être défini avec une annotation ou XML.
@WebServlet("/Hello")
public class HelloServlet extends HttpServlet {
//...
}
web.xml
<!--Si vous n'utilisez pas d'annotations, spécifiez dans XML-->
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>jp.co.sample.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
Caractéristiques des annotations par rapport au XML
⇒ ** Fort contre les changements de source **
@Override
Une annotation qui indique que la méthode est remplacée.
Book.java
public class Book {
public Book(String title, String author) {
this.title = title;
this.author = author;
}
String title;
String author;
@Override //Compile Error.Correctement égal(Object obj)
public boolean equals(Book obj) {
//Omettre la vérification nulle
return title.equals(obj.title) && author.equals(obj.author);
}
}
Au moment de la compilation, notez qu'il n'est pas remplacé (surchargé).
@Deprecated
Depuis Java9, vous pouvez écrire @Deprecated (since =" 9 ", forRemoval = true)
Va-t-il être aboli? (pour le retrait)
Quand sera-t-il aboli? (puisque)
Quoi de neuf pour les bibliothèques principales dans JDK Référence
@SuppressWarnings
Faites en sorte que l'EDI supprime les messages d'avertissement.
@SuppressWarnings( "unchecked" ) //Exclure les avertissements concernant la vérification de type
@SuppressWarnings( "javadoc" ) //Exclusion des avertissements JavaDoc
public class Book {
//..
}
http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-MA14-Architect-TypeAnnotations.pdf http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-MA16-Annotations.pdf
Recommended Posts