JavaRush /Java Blog /Random-TL /Mga anotasyon. Part one, medyo boring

Mga anotasyon. Part one, medyo boring

Nai-publish sa grupo
Unang parte. Sumulat ako nang napakaikli tungkol sa mga anotasyon na may mga uri ng SOURCE at CLASS. Ito ay nagkakahalaga ng pagbabasa upang hindi mawala sa ikalawang bahagi at upang simulan ang "hindi pagkakaunawaan" ng kaunti pa =) Siguradong magkakaroon ng kahit isang salita dito na alam mo!
Аннотации. Часть первая, немного скучная - 1
Sa unang pagkakataon na nakita ko sila sa mga problema dito, kahit papaano ay hindi ko sila napansin. Well, ang Override ay nakikipag-hang out, ito ay isinulat ng IDEA, kaya ganoon dapat. Sa paglipas ng panahon, napagtanto ko na ang lahat ay mas malalim. Habang nag-aaral ka, ang mga anotasyon ay tila isang bagay na walang silbi, ngunit kailangan. Hindi mo alam kung bakit nila ito ginagawa. Sa palagay ko nagbasa ako ng ilang mga artikulo, sinabi nila "gaano kahusay na mayroon kaming mga anotasyon ngayon, ang lahat ay naging napakasimple." Ngunit hindi ko alam kung paano ito noon, at hindi ko naiintindihan na ito ay mas madali na ngayon. Ngayon alam ko na at gusto kong sabihin sa iyo ng kaunti. May 3 uri ng anotasyon (RetentionPolicy):
  • SOURCE – mga anotasyon ng compiler
  • CLASS – ang data mula sa anotasyon ay isusulat sa bytecode ngunit hindi magiging available sa panahon ng operasyon. Isinulat nila na maraming mga anotasyon sa karaniwang aklatan ang gumagamit ng ganitong uri, at ngayon ay itinatago nila ito dahil sa pabalik na pagkakatugma. Ginagamit para sa napaka-espesipikong mga gawain.
  • Tanong at sagot sa StackOverflow
  • RUNTIME – ang pinakasikat, ginagamit habang tumatakbo ang code.
Dahil ang bahagi ng artikulo ay kinuha sa pamamagitan ng pagpapakilala, magsusulat ako dito tungkol sa SOURCE at CLASS annotation. Narito ang mga abstract na mahahanap ko (salamat sa problema 3607). Hindi ako nagsusulat tungkol sa runtime, napakarami sa kanila at hindi iyon ang paksa ng artikulo. PINAGMULAN:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • ,java/lang/Override.class
KLASE: Hindi ko alam kung bakit kailangan ang mga anotasyon na may uri na CLASS. Hindi ako makahanap ng dokumentasyon para sa mga kasalukuyang anotasyon, kaya sa palagay ko ay maiiwan na lang natin ang bagahe na ito. Ngunit kung nahanap mo ito, mangyaring ibahagi. SOURCE annotation:
  1. Native – ang isang variable sa ilalim ng annotation na ito ay maaaring sumangguni sa native code;

  2. SuppressWarnings – pinipigilan ang iba't ibang babala ng compiler;

  3. Binuo – minarkahan ang source code na nabuo;

  4. I-override – sinusuri ang pag-override ng paraan.
Higit pang mga detalye:
Аннотации. Часть первая, немного скучная - 2
Katutubo - hindi kailanman nakita at hindi kailanman ginagamit. Sa tingin ko ito ay isang bihirang anotasyon, dahil... ginagamit nila ito kung kailangan nilang magpatakbo ng code sa isa pang "katutubong" wika. Sinubukan kong maghanap ng malinaw na sanggunian sa kanya, ngunit hindi ko mahanap.
Аннотации. Часть первая, немного скучная - 3
SuppressWarnings - kadalasang ginagamit sa form na @SuppressWarnings("unchecked"). Ginagamit upang sugpuin ang mga babala na alam mo. Pinipigilan ng halimbawa sa itaas ang mga babala tungkol sa pag-cast ng mga hindi naka-check na uri. Muli, na-encounter ko lang ito sa form at gamit na ito.
Аннотации. Часть первая, немного скучная - 4
Generated — столкнулся сейчас, когда по заданию приходится генерировать классы из xsd файлов. Эти 3 аннотации довольно специфичны и на данный момент вам, скорее всего, неинтересны. Опишу последнюю.
Аннотации. Часть первая, немного скучная - 5
Override — ей вы пользуетесь постоянно и она делает очень полезную вещь. При переопределении метода легко ошибиться, если только это не делает IDEA. Очепятки or просто ошибки, бывает. Эта annotation будет следить, что метод в родительском классе совпадает с нашим (помеченным) методом. Это гарантирует нам, что метод будет переопределен, а не дописан. При рефакторинге codeа, метод может быть удален or изменен. Опять же annotation вам укажет на ошибку. Без неё наш метод просто дописался бы.
Аннотации. Часть первая, немного скучная - 6
Скучно? Я бы сказал да, из этой статьи мало что полезного можно вынести. Почти все в ней (90%) рассказ о чем-то, чем вы не будете пользоваться, or будете, но очень редко. Оставшиеся 10% это привет и описание аннотации Override, которая на первый взгляд бесполезная. Ну, что же думаю, во второй части статьи будет интереснее. Там буду RUNTIME аннотации, а они взаимодействуют с codeом в реальном времени и творят черную магию. Аннотации. Часть вторая. Lombok.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION