0Pricing
Kotlin Academy · Lekcja

Korzystanie z adnotacji

Dodawaj adnotacje do kodu

Korzystanie z adnotacji to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Czym są adnotacje?

Adnotacje dołączają metadane do kodu. Same w sobie nie zmieniają jego działania, ale narzędzia, kompilatory i biblioteki odczytują je, aby podejmować decyzje.

Adnotację zapisuje się za pomocą @ oraz następującej po nim nazwy, bezpośrednio przed elementem, którego dotyczy.

Pierwsza adnotacja

Biblioteka standardowa udostępnia kilka przydatnych adnotacji. @Deprecated oznacza kod, którego nie należy już używać, i wyświetla ostrzeżenie w miejscu wywołania.

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

fun newGreet() = "Hello"

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

Adnotacje z argumentami

Adnotacje mogą przyjmować argumenty zapisywane podobnie jak parametry konstruktora. @Deprecated przyjmuje komunikat oraz opcjonalną wskazówkę 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))
}

Tłumienie ostrzeżeń

@Suppress nakazuje kompilatorowi wyciszyć określone ostrzeżenia dla oznaczonego elementu. Nazwy ostrzeżeń przekazuje się jako ciągi znaków.

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

JvmStatic i pokrewne

Niektóre adnotacje wpływają na sposób kompilowania kodu Kotlin do JVM. @JvmStatic, @JvmField i @JvmName sterują kodem bajtowym, dzięki czemu osoby wywołujące kod z języka Java otrzymują wygodniejsze API.

W czystym kodzie Kotlin nie mają żadnego działania, ale są istotne podczas współdziałania z Javą.

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

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

Cele użycia adnotacji

Właściwość może generować kilka elementów JVM: pole, getter, setter i parametry konstruktora. Cele użycia adnotacji wskazują, do którego elementu ma zostać przypisana adnotacja.

Składnia: @get:, @set:, @field:, @param:.

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

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

Throws podczas współdziałania z Javą

Kotlin nie ma kontrolowanych wyjątków, dlatego wywołania z języka Java nigdy nie widzą klauzul throws, chyba że dodadzą Państwo @Throws. Zapisuje ona typ wyjątku w sygnaturze kodu bajtowego.

import java.io.IOException

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

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

Wiele adnotacji

Na jednym elemencie można umieścić kilka adnotacji. Każdą z nich zapisuje się w osobnym wierszu lub oddziela spacjami. Kolejność nie ma znaczenia.

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

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

Adnotacje na wyrażeniach

Adnotacje mogą również dotyczyć wyrażeń i deklaracji lokalnych, a nie tylko funkcji lub klas na poziomie głównym. Często stosuje się je w ten sposób z @Suppress wewnątrz ciała funkcji.

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

fun computeOnce() = 99

OptIn i eksperymentalne API

Biblioteki oznaczają niestabilne API za pomocą niestandardowych adnotacji wymagających jawnej zgody. Aby ich użyć, należy zaakceptować ryzyko za pomocą @OptIn(SomeApi::class) lub przekazać tę adnotację dalej.

Dzięki temu korzystanie z eksperymentalnych funkcji jest jawne, a nie przypadkowe.

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

Po co stosować adnotacje

Adnotacje pozwalają przekazywać informacje o intencjach narzędziom: kompilatory ostrzegają o wywołaniach elementów przestarzałych, biblioteki serializujące mapują pola, platformy testowe znajdują metody testowe, a platformy DI łączą zależności.

  • Metadane, a nie logika
  • Odczytywane podczas kompilacji lub w czasie działania
  • Konfiguracja pozostaje blisko kodu

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat używania adnotacji.

Podsumowanie

Nauczyli się Państwo używać wbudowanych adnotacji:

  • @Deprecated, @Suppress, @Throws
  • Współdziałanie z JVM: @JvmStatic, @JvmName
  • Cele użycia, takie jak @get: i @field:
  • Jawna zgoda na eksperymentalne API

W następnej części zdefiniują Państwo własne adnotacje.

Często zadawane pytania

Czy lekcja „Korzystanie z adnotacji” jest bezpłatna?

Tak — pełny tekst „Korzystanie z adnotacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Korzystanie z adnotacji”?

Dodawaj adnotacje do kodu Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Korzystanie z adnotacji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Korzystanie z adnotacji
  2. Definiowanie adnotacji
  3. Podstawy refleksji
  4. Praktyczna refleksja
← Powrót do Kotlin Academy