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! 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:
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 — 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.
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 — 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
- 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.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/annotation/Generated.class
- java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- Native — Maaaring sumangguni sa native code ang isang variable na may ganitong anotasyon;
- SuppressWarnings — Pinipigilan ng anotasyong ito ang iba't ibang babala ng compiler;
- Binuo — Ang anotasyong ito ay nagmamarka ng source code na nabuo;
- Override — Sinusuri ng anotasyong ito ang mga override ng paraan.
GO TO FULL VERSION