Sobes.tech
Middle+

Čo sa stane, ak z Java kódu pristúpite k internému (internal) poľu objektu implementovaného v Kotlin?

sobes.tech AI

Odpoveď od AI

Bude dochádzať k chybe pri kompilácii.

// Kotlin kód
class MyClass {
    internal val internalProperty: String = "Vnútorná hodnota"
}
// Java kód, ktorý sa pokúša pristúpiť k vnútornej vlastnosti
public class JavaClass {
    public void accessInternalProperty() {
        MyClass myObject = new MyClass();
        // Tento riadok spôsobí chybu pri kompilácii
        // System.out.println(myObject.internalProperty);
    }
}

Viditeľnosť internal v Kotlin znamená, že člen triedy je viditeľný iba v rámci rovnakého modulu. Z pohľadu Javy je to podobné viditeľnosti package-private, ale platí pre všetky triedy v rovnakom Kotlin module kompilácie, nie len v rovnakom balíku. Java kompilátor nemá priamy prístup k internal členom Kotlin z iných modulov (aj keď sú v rovnakom balíku), čo vedie k chybe pri kompilácii. Kotlin generuje špeciálne názvy pre internal členy, ktoré obsahujú názov modulu, aby zabránil prístupu zvonku z modulu.