Sobes.tech
Middle

Como configurar a integração do Kotlin com projetos Java?

sobes.tech IA

Resposta da IA

Para integrar Kotlin com um projeto Java existente, é necessário:

  1. Adicionar dependências do Kotlin ao projeto: Dependendo do sistema de build (Gradle, Maven), adicione o plugin e a biblioteca padrão do Kotlin.

    Exemplo para Gradle (no build.gradle do módulo):

    plugins {
        id 'org.jetbrains.kotlin.jvm' version '<última versão do Kotlin>'
    }
    
    sourceSets {
        main {
            kotlin {
                srcDirs 'src/main/kotlin' // Adicionar diretório para código Kotlin
            }
        }
    }
    
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:<última versão do Kotlin>"
        // Outras dependências
    }
    
  2. Configurar os diretórios de código fonte: Criar um diretório para arquivos Kotlin, por exemplo, src/main/kotlin, ao lado de src/main/java. O sistema de build deve estar configurado para procurar código fonte em ambos os diretórios.

  3. Escrever classes em Kotlin: Criar novas classes em Kotlin. Elas poderão chamar sem problemas o código Java existente.

  4. Chamar código Kotlin de Java: Classes e funções Kotlin podem ser facilmente chamadas de Java. O compilador Kotlin gera bytecode compatível com JVM. Funções de nível superior em Kotlin são compiladas em métodos estáticos de uma classe Java com o sufixo Kt (padrão, o nome do arquivo). Pode-se usar @JvmName e @JvmOverloads para ajustar visibilidade e assinaturas em Java.

    Exemplo (Kotlin):

    // MyKotlinFile.kt
    package com.example
    
    fun greet(name: String) {
        println("Hello, $name!")
    }
    
    class MyKotlinClass {
        fun sayGoodbye() {
            println("Goodbye!")
        }
    }
    

    Exemplo (Java):

    // MyJavaClass.java
    package com.example;
    
    public class MyJavaClass {
        public static void main(String[] args) {
            // Chamada de função de nível superior de Kotlin
            MyKotlinFileKt.greet("World");
    
            // Chamada de método de classe Kotlin
            MyKotlinClass kotlinObject = new MyKotlinClass();
            kotlinObject.sayGoodbye();
        }
    }
    
  5. Converter código Java existente: IDEs (como IntelliJ IDEA) oferecem ferramentas para converter automaticamente classes Java em Kotlin. Isso é útil para uma transição gradual.

  6. Lidar com @Nullable e @NotNull: Kotlin distingue tipos nullable e não nullable. Anotações @Nullable e @NotNull de Java (por exemplo, de JSR-305, Android, Guava) são usadas pelo compilador Kotlin para inferir informações de nullability. Código Kotlin que chama Java deve considerar a potencial nullability dos valores retornados por métodos anotados.