Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Lambda expression em setOnClickListener

Boa tarde pessoas, primeiramente quero parabenizar a Alura, pelo excelentes instrutores, termino um curso e entro em outro, e a qualidade da aula é otima, com entusiamos, simplicidade e conteúdo .

Bom , vamos a minha duvida ... Há algum problema ( ou cuidado) em ativar o recurso lambda do Java 8 no projeto , com base na experiência de vocês ?

build.gradle

android  { 
.., código otmitido
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

Esse recurso me ajudou a ter um código menos verboso. Trocar uma classe anônima por uma lambda não tem preço( ou tem ?) .. kkk

Após utilização,

salvarButton.setOnClickListener((view) ->  {
            Toast.makeText(
                    FormularioActivity.this,
                    "Botão clicado",
                    Toast.LENGTH_SHORT).show();
 });
5 respostas
solução!

Fala ai Denis, de boa ?

Cara é bem bom usar isso, contudo a gente acaba limitando o número de usuário, por que ? Pois java 8 só funciona a partir do android 6.0 , as versões anteriores disso não tem retrocompatibilidade e quando voce executar o código ele quebrará :(

De boa Matheus,

Valeu pelo consellho !

Fiquei na duvida, porque eu marquei o projeto para atender a 100% do market place. E após ter alterado a configuração para suportar o java 8 , e como o Android Studio não deu nehuma mensagem de erro. Deu a intender que poderia funcionar. E pelo o que eu etendi do curso Java - parte 6 , aqui do alura, que o compilador faz apenas um truque, e por baixo dos panos escreve a classe anônima. Resolvi fazer um teste.

E por incrível que pareça funcionou no 4.1 Jelly Bean :)

Só um teste, mas em um projeto real fico com o seu conselho man.

Fico na dúvida pergunto mesmo .. kkk

Lembra que no android a gente não usa a jvm, usamos a dalvik ou a art, que são implementações próprias do google, visando performance e melhores práticas para seu funcionamento.

Olá Denis, como o java 8 ele acaba limitando os dispositivos que podem rodar a aplicação, recomendo Kotlin caso queira usar esse tipo de recurso, é uma linguagem que na minha opinião enxuga muito o código em si, principalmente nas camadas de controller do projeto.

Abçs

Valeu Rafel, então bora aprender Kotlin !