Java kommentárok (példákkal)

Ebben az oktatóanyagban példák segítségével megtudhatjuk, mi is az annotáció, a különböző Java annotációk és hogyan kell használni őket.

A Java kommentárok a program forráskódjának metaadatai (adatok az adatokról).

További információkat nyújtanak a programról a fordítónak, de nem maguk a program részei. Ezek a megjegyzések nem befolyásolják a lefordított program végrehajtását.

A kommentárok ezzel kezdődnek @. Szintaxisa:

 @ MegjegyzésNév 

Vegyünk egy példát az @Overrideannotációra.

Az @Overrideannotáció meghatározza, hogy az ezzel az annotációval megjelölt módszer felülírja a szuperosztály metódusát ugyanazzal a metódusnévvel, visszatérési típussal és paraméterlistával.

A @Overridemódszer felülírása nem kötelező . Ha azonban használjuk, a fordító hibát ad, ha valami nem stimmel (például rossz paramétertípus), miközben felülírja a módszert.

1. példa: @ Felülírási példa

 class Animal ( public void displayInfo() ( System.out.println("I am an animal."); ) ) class Dog extends Animal ( @Override public void displayInfo() ( System.out.println("I am a dog."); ) ) class Main ( public static void main(String() args) ( Dog d1 = new Dog(); d1.displayInfo(); ) ) 

Kimenet

 Egy kutya vagyok. 

Ebben a példában a módszer displayInfo()mind a szuperkategóriás állat-, mind az alosztálybeli kutyákban jelen van. Ha ezt a módszert meghívják, akkor az alosztály metódusát hívják meg a szuperosztály metódusának helyett.

Kommentár formátumok

A kommentárok tartalmazhatnak elemeket is (tagok / attribútumok / paraméterek).

1. Jelölő jelölések

A jelölőjegyzetek nem tartalmaznak tagokat / elemeket. Csak nyilatkozat megjelölésére szolgál.

Szintaxisa:

 @AnnotationName () 

Mivel ezek a kommentárok nem tartalmaznak elemeket, a zárójelek kizárhatók. Például,

 @ Felülírás 

2. Egyelemű kommentárok

Egyetlen elem kommentárja csak egy elemet tartalmaz.

Szintaxisa:

 @AnnotationName (elementName = "elementValue") 

Ha csak egy elem van, akkor szokás ezt az elemet értékként megnevezni.

 @AnnotationName (érték = "elementValue") 

Ebben az esetben az elem neve is kizárható. Az elem neve alapértelmezés szerint érték lesz.

 @AnnotationName ("elementValue") 

3. Több elemű kommentárok

Ezek a kommentárok vesszővel elválasztva tartalmaznak több elemet.

Szintaxisa:

 @AnnotationName (elem1 = "érték1", elem2 = "érték2") 

Megjegyzés elhelyezése

Bármely nyilatkozatot jelöléssel jelölhetünk, ha azt a nyilatkozat fölé helyezzük. A Java 8-tól kezdve a kommentek is elhelyezhetők egy típus előtt.

1. Fent nyilatkozatok

Mint fent említettük, a Java kommentárok elhelyezhetők osztály, metódus, interfész, mező és egyéb programelem deklarációk felett.

2. példa: @SuppressWarnings kommentár példa

 import java.util.*; class Main ( @SuppressWarnings("unchecked") static void wordsList() ( ArrayList wordList = new ArrayList(); // This causes an unchecked warning wordList.add("programiz"); System.out.println("Word list => " + wordList); ) public static void main(String args()) ( wordsList(); ) ) 

Kimenet

 Szavlista => (programiz) 

Ha a fenti programot anotáció nélkül állítják össze @SuppressWarnings("unchecked"), a fordító továbbra is lefordítja a programot, de figyelmeztetéseket ad:

A Main.java nem ellenőrzött vagy nem biztonságos műveleteket használ. Szavlista => (programiz)

Kapjuk a figyelmeztetést

 A Main.java nem ellenőrzött vagy nem biztonságos műveleteket használ 

a következő állítás miatt.

 ArrayList wordList = new ArrayList(); 

This is because we haven't defined the generic type of the array list. We can fix this warning by specifying generics inside angle brackets .

 ArrayList wordList = new ArrayList(); 

2. Type annotations

Before Java 8, annotations could be applied to declarations only. Now, type annotations can be used as well. This means that we can place annotations wherever we use a type.

Constructor invocations

 new @Readonly ArrayList() 

Type definitions

 @NonNull String str; 

This declaration specifies non-null variable str of type String to avoid NullPointerException.

 @NonNull List newList; 

This declaration specifies a non-null list of type String.

 List newList; 

This declaration specifies a list of non-null values of type String.

Type casts

 newStr = (@NonNull String) str; 

extends and implements clause

 class Warning extends @Localized Message 

throws clause

 public String readMethod() throws @Localized IOException 

Type annotations enable Java code to be analyzed better and provide even stronger type checks.

Types of Annotations

1. Predefined annotations

  1. @Deprecated
  2. @Override
  3. @SuppressWarnings
  4. @SafeVarargs
  5. @FunctionalInterface

2. Meta-annotations

  1. @Retention
  2. @Documented
  3. @Target
  4. @Inherited
  5. @Repeatable

3. Custom annotations

These annotation types are described in detail in the Java Annotation Types tutorial.

Use of Annotations

  • Compiler instructions - Annotations can be used for giving instructions to the compiler, detect errors or suppress warnings. The built-in annotations @Deprecated, @Override, @SuppressWarnings are used for these purposes.
  • Compile-time instructions - Compile-time instructions provided by these annotations help the software build tools to generate code, XML files and many more.
  • Futásidejű utasítások - Néhány annotáció definiálható, hogy futás közben utasításokat adjon a programnak. Ezeket a megjegyzéseket a Java Reflection segítségével érheti el.

érdekes cikkek...