Sobes.tech
Junior

Como integrar o código Kotlin com o código Java?

sobes.tech IA

Resposta da IA

A integração do Kotlin com o Java é perfeita graças à compatibilidade com JVM:

  1. Uso de Kotlin a partir do Java:

    • As classes e funções Kotlin estão disponíveis em Java.
    • As propriedades getter e setter de Kotlin são geradas automaticamente e acessíveis a partir do Java.
    • As funções de nível superior de Kotlin são compiladas em métodos estáticos de uma classe com o nome do arquivo + "Kt" (por padrão).
    • Anotação @JvmStatic para métodos estáticos em companion object.
    • @JvmOverloads para gerar métodos sobrecarregados para funções com parâmetros padrão.
    // Código Java chamando Kotlin
    SomeKotlinClass kotlinObject = new SomeKotlinClass("hello");
    System.out.println(kotlinObject.getProperty()); // Acesso à propriedade via getter
    
    KotlinFileKt.someTopLevelFunction(); // Chamada de função de nível superior
    
  2. Uso de Java a partir do Kotlin:

    • Classes e interfaces Java estão disponíveis diretamente.
    • Lambdas Kotlin podem ser usadas no lugar de conversões SAM em Java 8+.
    • A nullabilidade dos tipos Java é tratada como "tipos de plataforma" em Kotlin, exigindo uma verificação explícita de null.
    // Código Kotlin chamando Java
    import java.util.ArrayList
    
    fun useJavaClass() {
        val javaList = ArrayList<String>() // Uso de classe Java
        javaList.add("item")
    
        val javaString: String? = javaMethodReturningNullable() // Tipo de plataforma
        if (javaString != null) {
            println(javaString.length) // Requer verificação de null
        }
    }
    
  3. Interação em um mesmo projeto:

    • Arquivos Kotlin e Java podem coexistir em um projeto e se chamarem mutuamente.
    • IDE (por exemplo, IntelliJ IDEA) facilita a navegação e refatoração entre os idiomas.
  4. Ferramentas de build:

    • Gradle e Maven suportam projetos mistos Kotlin/Java.
  5. Uso conjunto:

    • Pode-se começar com Kotlin, reescrevendo gradualmente partes do código Java.
    • Pode-se começar com uma pequena quantidade de código Kotlin em um projeto Java existente.