Junior
Comment peut-on intégrer du code Kotlin avec du code Java?
sobes.tech IA
Réponse de l'IA
L’intégration de Kotlin avec Java est transparente grâce à la compatibilité JVM:
-
Utilisation de Kotlin depuis Java :
- Les classes et fonctions Kotlin sont accessibles en Java.
- Les propriétés
getteretsetterde Kotlin sont générées automatiquement et accessibles depuis Java. - Les
fonctions de niveau supérieurde Kotlin sont compilées en méthodes statiques d’une classe portant le nom du fichier + "Kt" (par défaut). - L’annotation
@JvmStaticpour les méthodes statiques danscompanion object. @JvmOverloadspour générer des méthodes surchargées pour les fonctions avec paramètres par défaut.
// Code Java appelant Kotlin SomeKotlinClass kotlinObject = new SomeKotlinClass("hello"); System.out.println(kotlinObject.getProperty()); // Accès à la propriété via getter KotlinFileKt.someTopLevelFunction(); // Appel d’une fonction de niveau supérieur -
Utilisation de Java depuis Kotlin :
- Les classes et interfaces Java sont directement accessibles.
- Les lambdas Kotlin peuvent remplacer la conversion SAM en Java 8+.
- La nullabilité des types Java est traitée comme des "types de plateforme" en Kotlin, nécessitant une vérification explicite de null.
// Code Kotlin appelant Java import java.util.ArrayList fun useJavaClass() { val javaList = ArrayList<String>() // Utilisation d’une classe Java javaList.add("item") val javaString: String? = javaMethodReturningNullable() // Type de plateforme if (javaString != null) { println(javaString.length) // Vérification de null requise } } -
Interaction dans un même projet :
- Les fichiers Kotlin et Java peuvent coexister dans un même projet et s’appeler mutuellement.
- L’IDE (par exemple, IntelliJ IDEA) facilite la navigation et le refactoring entre les langages.
-
Outils de build :
- Gradle et Maven supportent des projets mixtes Kotlin/Java.
-
Utilisation conjointe :
- Il est possible de commencer avec Kotlin, en réécrivant progressivement des parties du code Java.
- Il est possible de commencer avec une petite quantité de code Kotlin dans un projet Java existant.