Sobes.tech
Middle+

Šta će se desiti ako iz Java koda pristupite internom (internal) polju objekta implementiranog na Kotlinu?

sobes.tech АИ

Одговор од АИ

Doći će do greške pri kompilaciji.

// Kotlin kod
class MyClass {
    internal val internalProperty: String = "Interna vrednost"
}
// Java kod koji pokušava da pristupi internoj svojstvu
public class JavaClass {
    public void accessInternalProperty() {
        MyClass myObject = new MyClass();
        // Ovaj red će izazvati grešku pri kompilaciji
        // System.out.println(myObject.internalProperty);
    }
}

Vidljivost internal u Kotlinu znači da je član klase vidljiv samo unutar istog modula. Sa stanovišta Jave, ovo je slično package-private vidljivosti, ali važi za sve klase u istom Kotlin modulu za kompilaciju, a ne samo u istom paketu. Java kompajler nema direktan pristup internal članovima Kotlin iz drugih modula (čak i ako su u istom paketu), što dovodi do greške pri kompilaciji. Kotlin generiše posebna imena za internal članove koja uključuju naziv modula, kako bi sprečila pristup sa strane izvan modula.