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.