Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Troca de códigos Java por Kotlin

Bom dia a todos

Eu fiquei por muito tempo pensando se era mesmo necessário isso, pois o código Java vai funcionar do mesmo jeito em Kotlin. Mas eu vou deixar aqui para quem quiser substituir o código java desse curso por Kotlin. Todos eu testei e deram certo para mim. Se tiverem mais sugestões, correções ou melhorias, pode deixar nos comentários:

  • Primeiramente, o filter do CursoService e Usuario do java pode ser substituido pelo metodo first neste caso: código java:
      fun buscarPorId(id: Long): Usuario {
          return usuarios.stream().filter({
              c -> c.id == id
          }).findFirst().get()
      }
    código kotlin:
      fun buscarPorID(id: Long): Usuario {
          return usuarios.first{it.id == id}
      }
  • Já no filter que lanca uma exceção, podemos utilizar o firstOrNull() junto com o Elvis operator: código java:
      fun deletar(id: Long) {
          val topico = topicos.stream().filter { t ->
              t.id == id
          }.findFirst().orElseThrow{NotFoundException(notFoundMessage)}
          topicos = topicos.minus(topico)
      }
    código kotlin:
      fun deletar(id:Long) {
          val topicoAntigo = topicos.firstOrNull { it.id == id } ?: throw NotFoundException(notFoundMessage)
          topicos.remove(topicoAntigo)
      }
  • Uso de arrayList ao invés de utilizar list ou mutableList (neste caso, não sei qual seria o melhor, se alguém tiver uma sugestão, agradeço)(eu tava usando o MutableList pois a lista estava mudando a todo momento): código java:
    val respostas: List<Resposta> = ArrayList()
    código kotlin:
    val resposta: MutableList<Resposta> = mutableListOf(),
    ou
    val resposta: List<Resposta> = listOf(),
    outro caso:
    cursos = Arrays.asList(curso)
    por:
    cursos = mutableListOf(curso)
    ou 
    cursos = listOf(curso)
1 resposta
solução!

Fala Murilo, de boa?

Cara, o ponto é que kotlin acaba sendo um pouco menos verboso e isso faz com que o código seja mais "direto", facilitando a leitura, na maioria das vezes.

Em alguns projetos que a galera quer adotar o kotlin vindo do java, uma estrategia é fazer isso que tu fez, toda vez que for mexer em um código java, você migra ele para kotlin e deixa funcionando... o mais legal é ver que tu tá tá entendendo certinho como fazer o "de para"