Sobes.tech
Middle

Kako podesiti integraciju Kotlin-a sa Java projektima?

sobes.tech АИ

Одговор од АИ

Za integraciju Kotlin-a sa postojećim Java projektom potrebno je:

  1. Dodati zavisnosti za Kotlin u projekat: U zavisnosti od sistema za izgradnju (Gradle, Maven), dodajte plugin i standardnu biblioteku Kotlin.

    Primer za Gradle (u build.gradle modulu):

    plugins {
        id 'org.jetbrains.kotlin.jvm' version '<poslednja verzija Kotlin>'
    }
    
    sourceSets {
        main {
            kotlin {
                srcDirs 'src/main/kotlin' // Dodavanje direktorijuma za Kotlin izvore
            }
        }
    }
    
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:<poslednja verzija Kotlin>"
        // Druge zavisnosti
    }
    
  2. Podesiti direktorijume sa izvorima: Kreirati direktorijum za Kotlin fajlove, na primer src/main/kotlin, pored src/main/java. Sistem za izgradnju treba biti konfigurisan da traži izvore u oba direktorijuma.

  3. Pisati Kotlin klase: Kreirati nove klase u Kotlinu. One mogu bez problema da pozivaju postojeći Java kod.

  4. Pozvati Kotlin kod iz Java: Kotlin klase i funkcije mogu biti lako pozvane iz Java. Kotlin kompilator generiše bajtkod koji je potpuno kompatibilan sa JVM-om. Funkcije na nivou vrha u Kotlinu se kompajliraju u statičke metode Java klase sa sufiksom Kt (po defaultu ime fajla). @JvmName i @JvmOverloads mogu se koristiti za podešavanje vidljivosti i potpisa u Java.

    Primer (Kotlin):

    // MyKotlinFile.kt
    package com.example
    
    fun greet(name: String) {
        println("Hello, $name!")
    }
    
    class MyKotlinClass {
        fun sayGoodbye() {
            println("Goodbye!")
        }
    }
    

    Primer (Java):

    // MyJavaClass.java
    package com.example;
    
    public class MyJavaClass {
        public static void main(String[] args) {
            // Pozivanje funkcije na nivou vrha iz Kotlin-a
            MyKotlinFileKt.greet("World");
    
            // Pozivanje metode iz Kotlin klase
            MyKotlinClass kotlinObject = new MyKotlinClass();
            kotlinObject.sayGoodbye();
        }
    }
    
  5. Konvertovati postojeći Java kod: IDE (npr. IntelliJ IDEA) pružaju alate za automatsku konverziju Java klasa u Kotlin. Ovo je korisno za postepni prelaz.

  6. Obraditi @Nullable i @NotNull: Kotlin razlikuje nullable i non-nullable tipove. Anotacije @Nullable i @NotNull iz Java (npr. iz JSR-305, Android, Guava) koriste se od strane Kotlin kompilatora za izvođenje informacija o nullability. Kotlin kod koji poziva Java treba da uzme u obzir potencijalnu nullability vraćenih vrednosti anotiranih metoda.