Kotlin Academy · Lektion

Använda annotationer

Annotera kod

Lektion 1 av 413 steg

Använda annotationer är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.

Vad är annoteringar

Annoteringar fäster metadata vid kod. De ändrar inte beteendet på egen hand, men verktyg, kompilatorer och bibliotek läser dem för att fatta beslut.

Ni skriver en annotering med @ följt av dess namn, placerad precis före elementet som den gäller.

En första annotering

Standardbiblioteket innehåller flera användbara annoteringar. @Deprecated markerar kod som inte längre bör användas och visar en varning vid anropsstället.

@Deprecated("Use newGreet() instead")
fun greet() = "Hi"

fun newGreet() = "Hello"

fun main() {
    println(newGreet())
}

Annoteringar med argument

Annoteringar kan ta argument, skrivna som konstruktorparametrar. @Deprecated accepterar ett meddelande och valfritt en ledtråd i form av ReplaceWith.

@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))
}

Undertrycka varningar

@Suppress instruerar kompilatorn att tysta specifika varningar för det annoterade elementet. Ni anger varningsnamnen som strängar.

@Suppress("UNUSED_VARIABLE")
fun main() {
    val unused = 42
    println("Runs without the unused-variable warning")
}

JvmStatic och relaterade annoteringar

Vissa annoteringar påverkar hur Kotlin kompileras till JVM. @JvmStatic, @JvmField och @JvmName styr bytekoden så att Java-anropare får mer lättanvända API:er.

De gör ingenting i ren Kotlin-kod, men är viktiga för interoperabilitet.

class Math {
    companion object {
        @JvmStatic
        fun square(x: Int) = x * x
    }
}

fun main() {
    println(Math.square(5))
}

Annoteringars användningsmål

En egenskap kan generera flera JVM-element: ett fält, en getter, en setter och konstruktorparametrar. Användningsmål anger var en annotering ska placeras.

Syntax: @get:, @set:, @field:, @param:.

class User(@get:JvmName("fetchName") val name: String)

fun main() {
    val u = User("Ada")
    println(u.name)
}

Throws för Java-interoperabilitet

Kotlin har inga kontrollerade undantag, så Java-anropare ser aldrig throws-satser om du inte lägger till @Throws. Det lagrar undantagstypen i bytekodens signatur.

import java.io.IOException

@Throws(IOException::class)
fun readData(): String {
    return "data"
}

fun main() {
    println(readData())
}

Flera annoteringar

Du kan stapla flera annoteringar på samma element. Varje annotering placeras på en egen rad eller separeras med blanksteg. Ordningen spelar ingen roll.

@Deprecated("old")
@Suppress("DEPRECATION")
fun legacy() = "still here"

fun main() {
    println(legacy())
}

Annoteringar på uttryck

Annoteringar kan även tillämpas på uttryck och lokala deklarationer, inte bara på funktioner eller klasser på toppnivå. Det är vanligt med @Suppress i en funktionskropp.

fun main() {
    @Suppress("UNUSED_VARIABLE")
    val temp = computeOnce()
    println("Done")
}

fun computeOnce() = 99

OptIn och experimentella API:er

Bibliotek markerar instabila API:er med anpassade opt-in-annoteringar. För att använda dem bekräftar du risken med @OptIn(SomeApi::class) eller genom att vidarebefordra annoteringen.

På så sätt förblir experimentella funktioner tydliga i stället för att användas av misstag.

fun main() {
    // @OptIn would appear here when calling an experimental function
    println("Opt-in keeps unstable APIs visible")
}

Varför använda annoteringar

Annoteringar låter dig kommunicera avsikter till verktyg: kompilatorer varnar för anrop till föråldrade funktioner, serialiseringsbibliotek mappar fält, testramverk hittar testmetoder och DI-ramverk kopplar ihop beroenden.

  • Metadata, inte logik
  • Läses vid kompilering eller körning
  • Håller konfigurationen nära koden

Snabbkontroll

Testa din förståelse av hur annoteringar används.

Sammanfattning

Du lärde dig att använda inbyggda annoteringar:

  • @Deprecated, @Suppress, @Throws
  • JVM-interoperabilitet: @JvmStatic, @JvmName
  • Användningsmål som @get: och @field:
  • Opt-in för experimentella API:er

Nästa steg är att definiera egna annoteringar.

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”Använda annotationer” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Använda annotationer”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Använda annotationer”?

Annotera kod Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?

Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Använda annotationer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?

Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Använda annotationer
  2. Definiera annotationer
  3. Grunderna i reflection
  4. Praktisk reflection
← Tillbaka till Kotlin Academy