Чӣ гуна танзим кардани ҳамгироии Kotlin бо лоиҳаҳои Java?
sobes.tech AI
Ҷавоб аз AI
Барои ҳамгироии Kotlin бо лоиҳаи Java-и мавҷуда зарур аст:
-
Илова кардани вобастагиҳо барои Kotlin дар лоиҳа: Дар асоси системаи сохтани (Gradle, Maven), плугин ва китобхонаи стандартии Kotlin-ро илова кунед.
Мисол барои Gradle (дар
build.gradleмодул):plugins { id 'org.jetbrains.kotlin.jvm' version '<версияи охирини Kotlin>' } sourceSets { main { kotlin { srcDirs 'src/main/kotlin' // Илова кардани директория барои манбаъҳои Kotlin } } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:<версияи охирини Kotlin>" // Вобастагиҳои дигар } -
Танзим кардани директорияҳои манбаъ: Созда кардани директория барои файлҳои Kotlin, масалан,
src/main/kotlin, дар канориsrc/main/java. Системаи сохтани бояд барои ҷустуҷӯи манбаъҳо дар ҳар ду директория танзим карда шавад. -
Навиштани синфҳои Kotlin: Сохтани синфҳои нав дар Kotlin. Онҳо метавонанд бе мушкилот ба коди Java-и мавҷуда даъват кунанд.
-
Даъват кардани коди Kotlin аз Java: Синфҳо ва функсияҳои Kotlin метавонанд ба осонӣ аз Java даъват шаванд. Компилятори Kotlin байт-кодро мебарорад, ки пурра мувофиқ бо JVM аст. Функсияҳои сатҳи боло дар Kotlin ба методҳои статикӣ дар синфи Java бо пасфикси
Kt(аз ҷониби пешфарз номи файл) компилют мешаванд.@JvmNameва@JvmOverloadsбарои танзими намоёнӣ ва сигнатураҳо дар Java истифода мешаванд.Мисол (Kotlin):
// MyKotlinFile.kt package com.example fun greet(name: String) { println("Hello, $name!") } class MyKotlinClass { fun sayGoodbye() { println("Goodbye!") } }Мисол (Java):
// MyJavaClass.java package com.example; public class MyJavaClass { public static void main(String[] args) { // Даъвати функсияи сатҳи боло аз Kotlin MyKotlinFileKt.greet("World"); // Даъвати метод аз синфи Kotlin MyKotlinClass kotlinObject = new MyKotlinClass(); kotlinObject.sayGoodbye(); } } -
Тарҷумаи коди Java-и мавҷуда: IDE (масалан, IntelliJ IDEA) воситаҳои автоматии тарҷумаи синфҳои Java ба Kotlin-ро пешниҳод мекунад. Ин барои гузариши тадриҷӣ муфид аст.
-
Ҳал кардани
@Nullableва@NotNull: Kotlin фарқ мекунад байни намудҳои nullable ва non-nullable. Аннотацияҳо@Nullableва@NotNullаз Java (масалан, аз JSR-305, Android, Guava) барои баровардани маълумоти nullability истифода мешаванд. Код дар Kotlin, ки Java-ро даъват мекунад, бояд эҳтиёт кунад, ки эҳтимолан арзишҳои null-ро дар функсияҳои аннотатсияшуда баргардонанд.