CodeGym /Java блог /Случаен /анотации. Част 1 — малко скучна
John Squirrels
Ниво
San Francisco

анотации. Част 1 — малко скучна

Публикувано в групата
Част 1. Написах много накратко за анотациите от типа SOURCE и CLASS. Това си струва да прочетете, за да не се изгубите във втората част и да разширите малко "недоразумението" си =) Обещавам, че определено ще има поне една дума, която знаете! анотации.  Част 1 — малко скучно - 1 Първият път, когато видях анотации в задачите тук няHow си не им обърнах особено внимание. Тук и там има @Override, но IDEA добавя това, така че реших, че трябва да бъде така. С времето разбрах, че всичко е много по-дълбоко. Докато изучавате, анотациите може да изглеждат донякъде безполезни, но необходими. Не знаете защо съществуват or Howво правят. Прочетохте няколко статии, в които се казваше: „Толкова е страхотно, че вече имаме анотации, всичко стана толкова просто“. Но не знаех How стоят нещата преди и не разбирах, че сега нещата са по-лесни. Сега знам и искам да споделя малко. Има 3 типа анотации (RetentionPolicy):
  • ИЗТОЧНИК — Анотации за компилатора
  • КЛАС — Информацията от анотацията ще бъде записана в byte code, но няма да бъде налична по време на изпълнение. Казват, че стандартната библиотека има много анотации от този тип, които сега се запазват за обратна съвместимост. Това се използва за много специфични задачи.
  • Въпроси и отговори в StackOverflow
  • RUNTIME — Тези анотации са най-популярни. Те се използват, докато codeът се изпълнява.
Въведението зае част от статията, така че ще пиша тук за анотациите SOURCE и CLASS. Това са анотациите, които успях да намеря (благодарение на задача 3607). Няма да говоря за анотациите по време на изпълнение — те са твърде много и не са темата на тази статия. ИЗТОЧНИК:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/анотация/Generated.class
  • java/lang/Override.class
КЛАС: Не знам защо са необходими пояснения за CLASS. Документацията за съществуващите анотации не може да бъде намерена никъде, така че мисля, че можете просто да оставите този багаж. Но ако го намерите, моля споделете. пояснения към SOURCE:
  1. Native — Променлива с тази анотация може да се отнася за собствен code;
  2. SuppressWarnings — Тази анотация потиска различни предупреждения на компилатора;
  3. Генерирано — Тази анотация маркира изходния code, който е генериран;
  4. Замяна — Тази анотация проверява заменките на метода.
За повече информация:

@Местен

Роден — никога не съм виждал това и никога не съм го използвал. Мисля, че това е доста рядка анотация, защото се използва, когато трябва да изпълните code на друг "роден" език. Опитах се и не успях да намеря ясно споменаване за това.

@SuppressWarnings

SuppressWarnings — тази анотация често се използва по следния начин: @SuppressWarnings("без отметка"). Използва се за потискане на предупреждения, за които вече сте запознати. Предишният пример потиска предупрежденията за непроверени преобразувания на типове. Отново, това е единствената употреба, която съм срещал.

@Генерирано

Генерирано — в момента попадам на тази анотация поради задание, при което трябва да генерирам класове от XSD файлове. Тези 3 анотации са доста специфични и най-вероятно в момента не са ви интересни. Ще опиша последното.

@Override

Override - Използвате го постоянно и той прави нещо много полезно. Когато замените метод, е лесно да направите грешка без помощта на IDEA. Независимо дали става дума за правописни or прости грешки, грешките се случват. Тази анотация ще гарантира, че методът в родителския клас съответства на нашия (анотиран) метод. Това гарантира, че методът ще бъде заменен, а не добавен. При рефакторинг на code родителският метод може да бъде премахнат or променен. Отново, тази анотация ще покаже грешка. Без него нашият метод просто ще бъде добавен. Скучно е? Бих казал да. Няма много полезни неща за извличане от тази статия. Почти всичко (90%) тук описва нещо, което никога няма да използвате or много рядко. Останалите 10% поздравяват и описват анотацията @Override, която на пръв поглед е безполезна. Въпреки това, мисля, че във втората част на статията ще бъде по-интересно. Там ще бъдат обсъдени анотациите за RUNTIME — те взаимодействат с codeа по време на изпълнение и правят черна магия. анотации. Част 2. Ломбок
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION