Јава напомене (са примерима)

У овом упутству ћемо научити шта су напомене, различите Јава напомене и како их користити помоћу примера.

Јава напомене су метаподаци (подаци о подацима) за наш изворни код програма.

Они компајлеру пружају додатне информације о програму, али нису део самог програма. Ове напомене не утичу на извршавање компајлираног програма.

Биљешке почињу са @. Његова синтакса је:

 @АннотатионНаме 

Узмимо пример @Overrideанотације.

У @Overrideнапомена прецизира да је метод који је означен са овом напоменом замењује методу суперкласна са истим именом метода, врсте повратка, и листа параметара.

Није обавезно користити @Overrideприликом замене методе. Међутим, ако га користимо, компајлер даје грешку ако нешто није у реду (као што је погрешан тип параметра) док надјачава методу.

Пример 1: Пример замене @ Оверриде

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

Оутпут

 Ја сам пас. 

У овом примеру, метода displayInfo()је присутна и у суперкласи Анимал и у подкласи Дог. Када се позове ова метода, позива се метода поткласе уместо методе у суперкласи.

Формати напомена

Напомене могу такође садржати елементе (чланове / атрибуте / параметре).

1. Ознаке маркера

Ознаке ознака не садрже чланове / елементе. Користи се само за обележавање декларације.

Његова синтакса је:

 @АннотатионНаме () 

Будући да ове напомене не садрже елементе, заграде могу бити изузете. На пример,

 @Прегазити 

2. Биљешке једног елемента

Напомена једног елемента садржи само један елемент.

Његова синтакса је:

 @АннотатионНаме (елементНаме = "елементВалуе") 

Ако постоји само један елемент, конвенција је именовање тог елемента као вредности.

 @АннотатионНаме (валуе = "елементВалуе") 

У овом случају може се изузети и име елемента. Назив елемента ће подразумевано бити вредност.

 @АннотатионНаме ("елементВалуе") 

3. Биљешке више елемената

Ове напомене садрже више елемената одвојених зарезима.

Његова синтакса је:

 @АннотатионНаме (елемент1 = "вредност1", елемент2 = "вредност2") 

Постављање напомена

Свака изјава може се означити анотацијом постављањем изнад те изјаве. Од Јаве 8, напомене се такође могу стављати испред типа.

1. Изнад декларација

Као што је горе поменуто, Јава напомене се могу поставити изнад декларације класе, методе, интерфејса, поља и других програмских елемената.

Пример 2: Пример напомене @СуппрессВарнингс

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

Оутпут

 Списак речи => (програмиз) 

Ако је горњи програм компајлиран без употребе @SuppressWarnings("unchecked")напомене, компајлер ће и даље компајлирати програм, али ће дати упозорења попут:

Маин.јава користи необележене или небезбедне операције. Списак речи => (програмиз)

Добијамо упозорење

 Маин.јава користи необележене или небезбедне операције 

због следеће изјаве.

 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.
  • Рунтиме инструкције - Неке напомене могу се дефинисати како би дао инструкције програма у рунтиме. Овим напоменама се приступа помоћу Јава Рефлецтион.

Занимљиви Чланци...