Kotlin-lähdetiedostojen luominen KotlinPoetilla
Käyttäkää KotlinPoetia KSP-prosessorissa tyyppiturvallisen Kotlin-koodin luomiseen.
Kotlin-lähdetiedostojen luominen KotlinPoetilla on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.
Mikä KotlinPoet on
KotlinPoet on Squaren Kotlin-API .kt-lähdetiedostojen ohjelmalliseen luomiseen. Se tuottaa hyvin muotoiltua ja idiomista Kotlin-koodia ja integroituu luontevasti KSP:n CodeGenerator-luokkaan.
Riippuvuuden lisääminen
Lisätkää KotlinPoet prosessorimoduuliinne:
dependencies {
implementation("com.squareup:kotlinpoet:1.17.0")
implementation("com.squareup:kotlinpoet-ksp:1.17.0") // KSP extensions
}FileSpec: luodun tiedoston juuri
FileSpec.builder(packageName, fileName) on aloituskohta. Lisätkää siihen tyypit, funktiot ja ominaisuudet ja kirjoittakaa tulos sitten KSP:n CodeGenerator-luokan kautta:
val file = FileSpec.builder("com.example.generated", "MyFactory")
.addType( /* TypeSpec here */ )
.build()TypeSpec: luokan määrittäminen
Käyttäkää luokille TypeSpec.classBuilder()-funktiota, objekteille objectBuilder()-funktiota ja rajapinnoille interfaceBuilder()-funktiota. Ketjuttakaa muodostimen kutsuja lisätäksenne funktioita, ominaisuuksia ja ylirajapintoja:
val classSpec = TypeSpec.classBuilder("MyFactory")
.addModifiers(KModifier.PUBLIC)
.addFunction( /* FunSpec */ )
.build()FunSpec: funktion luominen
FunSpec.builder(name) luo funktion. Käyttäkää addParameter()-, returns()- ja addStatement()-funktioita sen allekirjoituksen ja rungon muodostamiseen:
val funSpec = FunSpec.builder("create")
.addParameter("name", String::class)
.returns(String::class)
.addStatement("return "Hello, %L!", name")
.build()PropertySpec: ominaisuuden luominen
Käyttäkää PropertySpec.builder(name, type)-funktiota ominaisuuksien luomiseen. Määrittäkää KModifier.PRIVATE tai KModifier.OVERRIDE, tai käyttäkää mutable()-funktiota var-ominaisuuden luomiseen:
val propSpec = PropertySpec.builder("tag", String::class)
.initializer("%S", "MyClass")
.addModifiers(KModifier.PRIVATE)
.build()Koodin muotoilumääritteet
KotlinPoet käyttää muotoilumääritteitä funktioissa addStatement() ja initializer():
%L— literaali (ilman lainausmerkkejä)%S— merkkijonoliteraali (lainausmerkeillä)%T— tyyppinimi (tuonnit käsitellään automaattisesti)%N— nimi (määrityksen tai merkkijonon nimi)
Automaattiset tuonnit määritteellä %T
Kun käytätte %T-määritettä ClassName-arvon kanssa, KotlinPoet lisää tarvittavan tuonnin automaattisesti. Teidän ei tarvitse kirjoittaa tuontilausekkeita itse:
val listType = ClassName("kotlin.collections", "List")
val funSpec = FunSpec.builder("items")
.returns(listType.parameterizedBy(String::class.asTypeName()))
.addStatement("return emptyList()")
.build()Kirjoittaminen KSP:n CodeGeneratoriin
Käyttäkää kotlinpoet-ksp-siltaa kirjoittaaksenne luodun FileSpec-tiedoston KSP:n CodeGenerator-luokan kautta ja säilyttääksenne inkrementaalisen koonnin metatiedot:
file.writeTo(
codeGenerator = codeGenerator,
aggregating = false
)Laajennusfunktioiden luominen
Käyttäkää FunSpec.builder(name).receiver(type)-kutsua laajennusfunktioiden luomiseen:
val extFun = FunSpec.builder("toJson")
.receiver(ClassName("com.example", "User"))
.returns(String::class)
.addStatement("return Gson().toJson(this)")
.build()Käytännön käyttötapaus: tehdasgeneraattori
KSP-prosessori merkitsee data-luokat @AutoFactory-annotaatiolla ja käyttää KotlinPoetia companion-tehdasobjektin luomiseen kullekin luokalle. Luotu tiedosto sijoitetaan samaan pakettiin alkuperäisen luokan kanssa.
Luodun koodin testaaminen
Käyttäkää KotlinPoetin FileSpec.toString()-funktiota yksikkötesteissä luodun lähdetekstin tarkistamiseen kirjoittamatta sitä levylle. kotlin-compile-testing-ksp-kirjastolla voitte kääntää ja suorittaa luotua koodia testeissä.
Pikatarkistus
Mikä KotlinPoetin muotoilumäärite lisää tarvittavan tuonnin automaattisesti viitatulle luokalle?
Kertaus: Kotlin-lähdetiedostojen luominen KotlinPoetilla
Keskeiset opit:
FileSpec→ ylätason tiedosto;TypeSpec→ luokka/objekti/rajapinta;FunSpec→ funktio;PropertySpec→ ominaisuus- Käytä tyyppiviittauksiin muotoa
%T— importit lisätään automaattisesti - Kirjoita tiedosto kutsumalla KSP-prosessoreissa
file.writeTo(codeGenerator) - Käytä
FileSpec.toString()-metodia luodun tulosteen yksikkötestaukseen
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 ”Kotlin-lähdetiedostojen luominen KotlinPoetilla” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Kotlin-lähdetiedostojen luominen KotlinPoetilla”. 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 ”Kotlin-lähdetiedostojen luominen KotlinPoetilla”?
Käyttäkää KotlinPoetia KSP-prosessorissa tyyppiturvallisen Kotlin-koodin luomiseen. 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 3/4.
Kuinka kauan ”Kotlin-lähdetiedostojen luominen KotlinPoetilla”-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
- KSP vs KAPT: miksi KSP on nopeampi
- Ensimmäisen SymbolProcessorin kirjoittaminen
- Kotlin-lähdetiedostojen luominen KotlinPoetilla
- KSP-prosessoreiden integrointi Gradle-koontiin