Kotlin como cola: Integração com Java, Python, C e JS

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Kotlin não vive no vácuo: por que e como se integrar com outras linguagens

\n\n

Imagine: você está programando em Kotlin — uma linguagem moderna, concisa e segura. Mas seu projeto não é uma folha em branco. Em algum lugar nos recônditos do sistema existe código legado em Java, os analistas precisam de uma biblioteca em Python e, para operações de baixo nível, é necessário C. Ou você quer reutilizar a lógica de negócios no frontend, escrevendo-a em Kotlin, mas lá quem manda é o JavaScript.

\n\n

A boa notícia: a integração do Kotlin com outras linguagens não é um problema, é um superpoder. O Kotlin foi projetado para ser uma "linguagem-cola". Ele funciona na JVM (junto com Java), compila para código nativo (Kotlin/Native) e até para JavaScript (Kotlin/JS).

\n\n

Neste artigo, vamos analisar quatro cenários-chave de interação do Kotlin com outras linguagens com exemplos práticos. Você aprenderá como chamar Python a partir do Kotlin, incorporar código C via JNI, trabalhar perfeitamente com Java e até usar Kotlin no frontend. Vamos lá!

\n\n

1. Kotlin e Java: almas gêmeas desde as primeiras linhas

\n\n

O cenário mais óbvio e simples é a interação Kotlin Java. Como o Kotlin compila para bytecode da JVM, ele é 100% compatível com Java. Você pode chamar qualquer código Java do Kotlin e vice-versa — sem pontes, adaptadores ou dor.

\n\n

Como chamar Java a partir do Kotlin

\n

Suponha que você tenha uma classe Java antiga para trabalhar com datas:

\n\n
// Java: DateUtils.java\npublic class DateUtils {\n    public static String formatDate(long timestamp) {\n        return new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date(timestamp));\n    }\n}\n
\n\n

Em Kotlin, você a usa como se fosse nativa:

\n\n
// Kotlin\nfun main() {\n    val formatted = DateUtils.formatDate(System.currentTimeMillis())\n    println("Hoje: $formatted") // Hoje: 2025-04-03\n}\n
\n\n

Tudo funciona "de fábrica". Mas há nuances: segurança contra null. O Java não conhece os tipos anuláveis do Kotlin, portanto, ao chamar métodos Java, o Kotlin trata os valores retornados como tipos de plataforma (por exemplo, String!). Dica: sempre especifique o tipo explicitamente ou use !! / ?. com sabedoria.

\n\n

Como chamar Kotlin a partir do Java

\n

A compatibilidade reversa também existe. Suponha que você tenha um arquivo Kotlin:

\n\n
// Kotlin: Calculator.kt\npackage utils\n\nobject Calculator {\n    @JvmStatic\n    fun sum(a: Int, b: Int): Int = a + b\n}\n
\n\n

Do Java, chamamos assim:

\n\n
// Java\nimport utils.Calculator;\n\npublic class Main {\n    public static void main(String[] args) {\n        int result = Calculator.sum(5, 3);\n        System.out.println(result); // 8\n    }\n}\n
\n\n

O principal é não esquecer a anotação @JvmStatic para métodos estáticos e @JvmName para resolver conflitos de nomes. A integração do Kotlin com Java é tão estreita que você pode misturar ambas as linguagens em um mesmo projeto — isso é padrão no desenvolvimento Android e em muitos backends com Spring.

\n\n

2. Kotlin e Python: dois mundos, uma JVM (e GraalVM)

\n\n

Agora isso é mais interessante. Kotlin Python não é a combinação mais trivial, mas é possível. Não existe uma ponte nativa direta, mas podemos usar soluções baseadas em JVM.

\n\n

Opção A: GraalVM — executando Python na JVM

\n

GraalVM é uma máquina virtual que pode executar várias linguagens (Java, Kotlin, JavaScript, Python, Ruby) em um único processo. É a ferramenta ideal para a integração do Kotlin com Python.

\n\n

Instale o GraalVM e adicione suporte a Python:

\n\n
gu install python\n
\n\n

Agora, no código Kotlin, você pode chamar funções Python:

\n\n
// Kotlin (GraalVM Polyglot API)\nimport org.graalvm.polyglot.*\n\nfun main() {\n    val context = Context.create("python")\n    // Exec                

Blogs

Book Recommendations