Java-merknader (med eksempler)

I denne opplæringen vil vi lære hva kommentarer er, forskjellige Java-merknader og hvordan du bruker dem ved hjelp av eksempler.

Java-merknader er metadata (data om data) for programkildekoden vår.

De gir ytterligere informasjon om programmet til kompilatoren, men er ikke en del av selve programmet. Disse kommentarene påvirker ikke gjennomføringen av det kompilerte programmet.

Kommentarer starter med @. Dens syntaks er:

 @Annotasjonsnavn 

La oss ta et eksempel på @Overridemerknader.

De @Overridekommentar angir at metoden som er merket med dette annotering styrer fremgangsmåten i superklassen med den samme metode navn, returtype, og parameterlisten.

Det er ikke obligatorisk å bruke @Overridenår du overstyrer en metode. Imidlertid, hvis vi bruker det, gir kompilatoren en feil hvis noe er galt (for eksempel feil parametertype) mens metoden overstyres.

Eksempel 1: @ Override Annotation Eksempel

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

Produksjon

 Jeg er en hund. 

I dette eksemplet er metoden til displayInfo()stede i både superklassen Animal og subclass Dog. Når denne metoden kalles, kalles metoden til underklassen i stedet for metoden i superklassen.

Kommentasjonsformater

Kommentarer kan også omfatte elementer (medlemmer / attributter / parametere).

1. Markørkommentarer

Markørkommentarer inneholder ikke medlemmer / elementer. Den brukes kun til merking av en erklæring.

Dens syntaks er:

 @Annotasjonsnavn () 

Siden disse kommentarene ikke inneholder elementer, kan parenteser utelukkes. For eksempel,

 @Overstyring 

2. Enkeltelementkommentarer

En enkelt elementkommentar inneholder bare ett element.

Dens syntaks er:

 @AnnotationName (elementName = "elementValue") 

Hvis det bare er ett element, er det en konvensjon å kalle elementet som verdi.

 @AnnotationName (value = "elementValue") 

I dette tilfellet kan elementnavnet også ekskluderes. Elementnavnet vil være verdi som standard.

 @AnnotationName ("elementValue") 

3. Flere elementkommentarer

Disse kommentarene inneholder flere elementer atskilt med komma.

Dens syntaks er:

 @AnnotationName (element1 = "verdi1", element2 = "verdi2") 

Kommentarplassering

Enhver erklæring kan merkes med kommentar ved å plassere den over den erklæringen. Fra og med Java 8 kan merknader også plasseres før en type.

1. Over erklæringer

Som nevnt ovenfor kan Java-merknader plasseres over klasse, metode, grensesnitt, felt og andre programelementerklæringer.

Eksempel 2: @SuppressWarnings Kommentareksempel

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

Produksjon

 Ordliste => (programiz) 

Hvis programmet ovenfor er kompilert uten å bruke @SuppressWarnings("unchecked")kommentaren, vil kompilatoren fortsatt kompilere programmet, men det vil gi advarsler som:

Main.java bruker ukontrollerte eller usikre operasjoner. Ordliste => (programiz)

Vi får advarselen

 Main.java bruker ukontrollerte eller usikre operasjoner 

på grunn av følgende uttalelse.

 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-instruksjoner - Noen merknader kan defineres for å gi instruksjoner til programmet ved kjøretid. Disse kommentarene er tilgjengelige med Java Reflection.

Interessante artikler...