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.