Middle+
Que se passe-t-il si, à partir du code Java, on accède à un champ interne (internal) d'un objet implémenté en Kotlin?
sobes.tech IA
Réponse de l'IA
Il y aura une erreur de compilation.
// Code Kotlin
class MyClass {
internal val internalProperty: String = "Valeur interne"
}
// Code Java tentant d'accéder à la propriété interne
public class JavaClass {
public void accessInternalProperty() {
MyClass myObject = new MyClass();
// Cette ligne causera une erreur de compilation
// System.out.println(myObject.internalProperty);
}
}
La visibilité internal en Kotlin signifie que le membre de la classe n'est visible qu'à l'intérieur du même module. Du point de vue de Java, cela est similaire à la visibilité package-private, mais applicable à toutes les classes du même module de compilation Kotlin, et pas seulement au sein du même package. Le compilateur Java n'a pas un accès direct aux membres internal de Kotlin depuis d'autres modules (même s'ils sont dans le même package), ce qui entraîne une erreur de compilation. Le compilateur Kotlin génère des noms spéciaux pour les membres internal, qui incluent le nom du module, afin d'empêcher l'accès depuis l'extérieur du module.