Annotaatioiden käyttö
Lisää annotaatioita koodiin
Annotaatioiden käyttö on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä annotaatiot ovat?
Annotaatiot liittävät koodiin metatietoa. Ne eivät yksinään muuta toimintaa, mutta työkalut, kääntäjät ja kirjastot lukevat niitä tehdäkseen päätöksiä.
Annotaatio kirjoitetaan merkillä @, jota seuraa sen nimi, ja se sijoitetaan heti sen elementin eteen, johon se kohdistuu.
Ensimmäinen annotaatio
Standardikirjastossa on useita hyödyllisiä annotaatioita. @Deprecated merkitsee koodin sellaiseksi, ettei sitä pitäisi enää käyttää, ja näyttää varoituksen kutsukohdassa.
@Deprecated("Use newGreet() instead")
fun greet() = "Hi"
fun newGreet() = "Hello"
fun main() {
println(newGreet())
}Argumentteja käyttävät annotaatiot
Annotaatiot voivat ottaa argumentteja, jotka kirjoitetaan konstruktoriparametrien tapaan. @Deprecated hyväksyy viestin ja valinnaisen ReplaceWith-ohjeen.
@Deprecated(
message = "Renamed for clarity",
replaceWith = ReplaceWith("sum(a, b)")
)
fun add(a: Int, b: Int) = a + b
fun sum(a: Int, b: Int) = a + b
fun main() {
println(sum(2, 3))
}Varoitusten vaimentaminen
@Suppress käskee kääntäjää vaimentamaan tiettyjä varoituksia annotaation kohteena olevassa elementissä. Välittäkää varoitusten nimet merkkijonoina.
@Suppress("UNUSED_VARIABLE")
fun main() {
val unused = 42
println("Runs without the unused-variable warning")
}JvmStatic ja kumppanit
Jotkin annotaatiot vaikuttavat siihen, miten Kotlin käännetään JVM:lle. @JvmStatic, @JvmField ja @JvmName ohjaavat tavukoodia, jotta Java-kutsujat näkevät helppokäyttöisemmät API:t.
Puhtaassa Kotlin-koodissa nämä eivät tee mitään, mutta yhteentoimivuudessa niillä on merkitystä.
class Math {
companion object {
@JvmStatic
fun square(x: Int) = x * x
}
}
fun main() {
println(Math.square(5))
}Annotaatioiden use-site-targetit
Ominaisuus voi tuottaa JVM:lle useita elementtejä: kentän, getterin, setterin ja konstruktoriparametrit. Use-site-targetit ilmaisevat, mihin annotaatio sijoitetaan.
Syntaksi: @get:, @set:, @field:, @param:.
class User(@get:JvmName("fetchName") val name: String)
fun main() {
val u = User("Ada")
println(u.name)
}Throws Java-yhteentoimivuudessa
Kotlinissa ei ole tarkistettuja poikkeuksia, joten Java-kutsujat eivät koskaan näe throws-lausekkeita, ellet lisää @Throws-annotaatiota. Se tallentaa poikkeustyypin tavukoodin allekirjoitukseen.
import java.io.IOException
@Throws(IOException::class)
fun readData(): String {
return "data"
}
fun main() {
println(readData())
}Useita annotaatioita
Voit käyttää yhdessä elementissä useita annotaatioita. Jokainen kirjoitetaan omalle rivilleen tai erotetaan välilyönneillä. Järjestyksellä ei ole merkitystä.
@Deprecated("old")
@Suppress("DEPRECATION")
fun legacy() = "still here"
fun main() {
println(legacy())
}Annotaatiot lausekkeissa
Annotaatioita voi käyttää myös lausekkeissa ja paikallisissa määrityksissä, ei vain ylätason funktioissa tai luokissa. Tämä on tavallista käytettäessä @Suppress-annotaatiota funktion rungossa.
fun main() {
@Suppress("UNUSED_VARIABLE")
val temp = computeOnce()
println("Done")
}
fun computeOnce() = 99OptIn ja kokeelliset API:t
Kirjastot merkitsevät epävakaat API:t mukautetuilla opt-in-annotaatioilla. Niiden käyttö edellyttää riskin hyväksymistä komennolla @OptIn(SomeApi::class) tai annotaation välittämistä eteenpäin.
Näin kokeelliset ominaisuudet ovat tietoisia valintoja eivätkä vahingossa käyttöön päätyviä toimintoja.
fun main() {
// @OptIn would appear here when calling an experimental function
println("Opt-in keeps unstable APIs visible")
}Miksi annotaatioita käytetään?
Annotaatioiden avulla voit välittää tarkoituksen työkaluille: kääntäjät varoittavat vanhentuneista kutsuista, serialisointikirjastot yhdistävät kentät ja avaimet, testikehykset löytävät testifunktiot ja riippuvuuksien injektiokehykset kytkevät riippuvuudet.
- Metatietoa, ei logiikkaa
- Luetaan käännösaikana tai ajonaikana
- Asetukset pysyvät lähellä koodia
Pikatarkistus
Testaa, miten hyvin ymmärrät annotaatioiden käytön.
Kertaus
Opit käyttämään sisäänrakennettuja annotaatioita:
@Deprecated,@Suppress,@Throws- JVM-yhteentoimivuus:
@JvmStatic,@JvmName - Käyttökohteet, kuten
@get:ja@field: - Opt-in kokeellisia API:ita varten
Seuraavaksi määrittelet omia annotaatioita.
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Annotaatioiden käyttö” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Annotaatioiden käyttö”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Annotaatioiden käyttö”?
Lisää annotaatioita koodiin Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Annotaatioiden käyttö”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?
Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Annotaatioiden käyttö
- Annotaatioiden määrittäminen
- Reflektion perusteet
- Käytännön reflektio