CodeGym/Java Blog/Random/Mga anotasyon. Part 1 — medyo boring
John Squirrels
Antas
San Francisco

Mga anotasyon. Part 1 — medyo boring

Nai-publish sa grupo
Bahagi 1. Sumulat ako nang napakaikli tungkol sa mga anotasyon ng uri ng SOURCE at CLASS. Ito ay sulit na basahin, upang maiwasan ang mawala sa ikalawang bahagi at upang lumawak ang iyong "hindi pagkakaunawaan" ng kaunti =) I promise there will definitely be at least one word that you know! Mga anotasyon.  Part 1 — medyo boring - 1 Sa unang pagkakataon na nakakita ako ng mga anotasyon sa mga gawain dito kahit papaano ay hindi ko sila masyadong pinansin. Mayroong @Override dito at doon, ngunit idinagdag iyon ng IDEA, kaya naisip ko na dapat itong maging ganoon. Sa paglipas ng panahon, napagtanto ko na ang lahat ay mas malalim. Habang nag-aaral ka, ang mga anotasyon ay maaaring mukhang walang silbi ngunit kailangan. Hindi mo alam kung bakit sila umiiral o kung ano ang kanilang ginagawa. Nabasa mo na ang ilang artikulo na nagsasabing, "napakaganda na mayroon kaming mga anotasyon ngayon, naging napakasimple ng lahat." Ngunit hindi ko alam kung paano ang mga bagay noon, at hindi ko naiintindihan na ang mga bagay ay mas madali na ngayon. Ngayon alam ko na at gusto kong magbahagi ng kaunti. May 3 uri ng (RetentionPolicy) annotation:
  • SOURCE — Mga anotasyon para sa compiler
  • CLASS — Ang impormasyon mula sa anotasyon ay isusulat sa bytecode ngunit hindi magagamit sa runtime. Sinasabi nila na ang karaniwang library ay may maraming mga anotasyon ng ganitong uri, na ngayon ay pinanatili para sa pabalik na pagkakatugma. Ginagamit ito para sa mga partikular na gawain.
  • Q&A sa StackOverflow
  • RUNTIME — Ang mga anotasyong ito ang pinakasikat. Ginagamit ang mga ito habang isinasagawa ang code.
Ang panimula ay kinuha ang bahagi ng artikulo, kaya magsusulat ako dito tungkol sa SOURCE at CLASS annotation. Ito ang mga anotasyon na mahahanap ko (salamat sa Gawain 3607). Hindi ko tutugunan ang mga runtime na anotasyon — napakarami sa kanila at hindi sila ang paksa ng artikulong ito. 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 CLASS annotation. Ang dokumentasyon para sa mga kasalukuyang anotasyon ay wala kahit saan, kaya sa tingin ko maaari mo na lang iwanan ang bagahe na ito. Ngunit kung nahanap mo ito, mangyaring ibahagi. SOURCE annotation:
  1. Native — Maaaring sumangguni sa native code ang isang variable na may ganitong anotasyon;
  2. SuppressWarnings — Pinipigilan ng anotasyong ito ang iba't ibang babala ng compiler;
  3. Binuo — Ang anotasyong ito ay nagmamarka ng source code na nabuo;
  4. Override — Sinusuri ng anotasyong ito ang mga override ng paraan.
Para sa karagdagang impormasyon:

@Native

Katutubo — Hindi ko ito nakita at hindi ko kailanman ginamit. Sa tingin ko ito ay isang bihirang anotasyon, dahil ginagamit ito kapag kailangan mong magpatakbo ng code sa isa pang "katutubong" wika. Sinubukan ko at nabigo akong makahanap ng malinaw na pagbanggit nito.

@SuppressWarnings

SuppressWarnings — Ang anotasyong ito ay kadalasang ginagamit tulad nito: @SuppressWarnings("unchecked"). Ito ay ginagamit upang sugpuin ang mga babala na alam mo na. Pinipigilan ng nakaraang halimbawa ang mga babala tungkol sa mga hindi naka-check na uri ng mga conversion. Muli, ito ang tanging paggamit na naranasan ko.

@Nabuo

Binuo — Tumatakbo ako sa anotasyong ito ngayon dahil sa isang takdang-aralin kung saan kailangan kong bumuo ng mga klase mula sa mga XSD file. Ang 3 anotasyong ito ay medyo partikular at malamang na hindi ka interesado sa kasalukuyan. Ilalarawan ko ang huli.

@I-override

I-override — Palagi mo itong ginagamit at nagagawa nito ang isang bagay na lubhang kapaki-pakinabang. Kapag na-override ang isang paraan, madaling magkamali nang walang tulong ng IDEA. May mga typo man o simpleng error, nagkakamali. Titiyakin ng annotation na ito na ang pamamaraan sa parent class ay tumutugma sa aming (na-annotate) na paraan. Tinitiyak nito na ma-o-override ang pamamaraan sa halip na idagdag. Kapag refactoring code, ang paraan ng magulang ay maaaring alisin o baguhin. Muli, ang anotasyong ito ay magsasaad ng error. Kung wala ito, ang aming pamamaraan ay maidaragdag lamang. Nakakatamad? sasabihin kong oo. Walang gaanong kapaki-pakinabang na mapupulot mula sa artikulong ito. Halos lahat ng bagay (90%) dito ay naglalarawan ng isang bagay na hindi mo kailanman gagamitin o bihira lamang. Ang natitirang 10% ay kumumusta at naglalarawan sa @Override annotation, na sa unang tingin ay walang silbi. Iyon ay sinabi, sa palagay ko sa ikalawang bahagi ng artikulo ay magiging mas kawili-wili. Tatalakayin ang mga RUNTIME annotation — nakikipag-ugnayan sila sa code sa panahon ng pagpapatupad at gumagawa ng black magic. Mga anotasyon. Bahagi 2. Lombok
Mga komento
  • Sikat
  • Bago
  • Luma
Dapat kang naka-sign in upang mag-iwan ng komento
Wala pang komento ang page na ito