Java bilješke (s primjerima)

U ovom uputstvu naučit ćemo što su napomene, različite Java napomene i kako ih koristiti uz pomoć primjera.

Java napomene su metapodaci (podaci o podacima) za izvorni kod našeg programa.

Sastavljaču pružaju dodatne informacije o programu, ali nisu dio samog programa. Te bilješke ne utječu na izvršenje kompajliranog programa.

Bilješke počinju sa @. Njegova sintaksa je:

 @AnotacijaName 

Uzmimo primjer @Overridebilješke.

U @Overridezapažanje navodi se da je metoda koja je označena s ovim komentarima premošćuje metodu superclass s istim imenom metoda, vrsta povratka i popis parametara.

Nije obvezno koristiti @Overrideprilikom nadjačavanja metode. Međutim, ako ga koristimo, kompajler daje pogrešku ako nešto nije u redu (kao što je pogrešan tip parametra) dok nadjačava metodu.

Primjer 1: Primjer bilješke @ Override

 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(); ) ) 

Izlaz

 Ja sam pas. 

U ovom primjeru metoda displayInfo()je prisutna i u superklasi Životinja i u podrazredu Pas. Kada se pozove ova metoda, umjesto metode u superrazredi poziva se metoda podrazreda.

Formati bilješki

Bilješke također mogu sadržavati elemente (članove / atribute / parametre).

1. Bilješke markera

Oznake oznaka ne sadrže članove / elemente. Koristi se samo za označavanje deklaracije.

Njegova sintaksa je:

 @AnnotationName () 

Budući da ove bilješke ne sadrže elemente, zagrade se mogu izuzeti. Na primjer,

 @Preuzmi 

2. Bilješke s jednim elementom

Bilješka jednog elementa sadrži samo jedan element.

Njegova sintaksa je:

 @AnnotationName (elementName = "elementValue") 

Ako postoji samo jedan element, uobičajeno je imenovati taj element vrijednošću.

 @AnnotationName (value = "elementValue") 

U tom slučaju može se izuzeti i ime elementa. Naziv elementa bit će zadana vrijednost.

 @AnnotationName ("elementValue") 

3. Bilješke s više elemenata

Te bilješke sadrže više elemenata odvojenih zarezima.

Njegova sintaksa je:

 @AnnotationName (element1 = "vrijednost1", element2 = "vrijednost2") 

Postavljanje bilješki

Svaka izjava može se označiti bilješkom stavljanjem iznad te izjave. Od Jave 8, bilješke se također mogu stavljati ispred vrste.

1. Iznad deklaracija

Kao što je gore spomenuto, Java napomene mogu se postaviti iznad deklaracije klase, metode, sučelja, polja i drugih programskih elemenata.

Primjer 2: Primjer bilješke @SuppressWarnings

 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(); ) ) 

Izlaz

 Popis riječi => (programiz) 

Ako se gornji program kompajlira bez upotrebe @SuppressWarnings("unchecked")napomene, kompajler će i dalje kompajlirati program, ali dat će upozorenja poput:

Main.java koristi neprovjerene ili nesigurne operacije. Popis riječi => (programiz)

Dobivamo upozorenje

 Main.java koristi neprovjerene ili nesigurne operacije 

zbog sljedeće izjave.

 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.
  • Runtime upute - Neke bilješke mogu se definirati dati upute programa za vrijeme izvođenja. Ovim se bilješkama pristupa pomoću Java Reflection.

Zanimljivi članci...