Sobes.tech
Middle+

Co se stane, pokud z kódu Java přistoupíte k internímu (internal) poli objektu implementovaného v Kotlinu?

sobes.tech AI

Odpověď od AI

Bude docházet k chybě kompilace.

// Kotlin kód
class MyClass {
    internal val internalProperty: String = "Vnitřní hodnota"
}
// Java kód, který se pokouší přistoupit k vnitřní vlastnosti
public class JavaClass {
    public void accessInternalProperty() {
        MyClass myObject = new MyClass();
        // Tento řádek způsobí chybu kompilace
        // System.out.println(myObject.internalProperty);
    }
}

Viditelnost internal v Kotlinu znamená, že člen třídy je viditelný pouze uvnitř stejného modulu. Z pohledu Javy je to podobné viditelnosti package-private, ale platí pro všechny třídy ve stejném Kotlin modulu kompilace, nikoli pouze ve stejném balíčku. Java kompilátor nemá přímý přístup k internal členům Kotlin z jiných modulů (i když jsou ve stejném balíčku), což vede k chybě kompilace. Kotlin generuje speciální názvy pro internal členy, které obsahují název modulu, aby zabránil přístupu zvenčí modulu.