Kotlin para programadores Java

Comecei a me aventurar no mundo do Kotlin e resolvi criar uma mini referência para facilitar para quem vem do universo Java. Abaixo temos um resuminho inicial que pode facilitar a vida de quem está começando no Kotlin:

  • Ponto e vírgula é opcional
  • Constantes não precisam de tipo e são declaradas com a palavra val. Ex: val titulo = "Blog" é o equivalente em Java a final String titulo = "Blog";
  • Variáveis também não precisam de tipo e são declaradas com a palavra var. Ex: var nome = "Vespa" é o equivalente em Java a String nome = "Vespa";
  • Quando necessário identificar o tipo da variável, constante ou retorno de função é só colocar dois pontos e o tipo após a declaração. Ex: var nome: String
  • Quando a variável permite nulo é só colocar o ponto de interrogação no tipo. Ex: var nome: String? = null
  • O operador ternário para verificação de nulo para atribuição de valor default não é mais necessário (e não existe). Isso também é feito com o ponto de interrogação. Ex: var tamanho = nome?.length ?: 0 (Se o nome for nulo o valor para tamanho é zero, caso contrário é o tamanho). Você também pode executar uma ação como dar um return na função ou lançar uma exceção.
  • Declaração de funções (de modo grosseiro: o equivalente a métodos em java). Utilize fun.

fun soma(a: Int, b: Int): Int {
     return a + b 
}
ou
fun soma(a: Int, b: Int) = a + b

  • O construtor primário é definido já na declaração de classe. Ex: class Pessoa(val nome: String, var idade: Int)
  • Herança é feita semelhante à declaração de tipos de variáveis, mas passando o construtor que será chamado. Ex: class PessoaJuridica(nome: String) : Pessoa (nome)
  • Para sobrescrever uma função, é necessário usar a palavra override.

Há outros recursos bem interessantes do Kotlin, como Data classes, expressão When, coleções, extensões e afins, que abordaremos em outros artigos. Aguarde!

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6