Vídeo: Refactoring to Patterns em Java 8 2024
Às vezes, se você abrir código no editor do Android Studio e passar o mouse sobre certas palavras, você terá uma surpresa interessante. O Android Studio informa que você pode substituir a classe interna anônima por uma expressão lambda.
Você pode criar uma expressão lambda.Ok. Qual é a expressão de lambda? Para começar, lambda é uma letra no alfabeto grego, e a expressão lambda vem de artigos escritos na década de 1930 pelo matemático Alonzo Church.
Em 2013, a Oracle lançou Java 8, adicionando expressões lambda à linguagem Java. E em 2016, o Google disponibilizou recursos Java 8 aos desenvolvedores do Android.
O que é uma expressão lambda exatamente? Uma expressão lambda é uma maneira concisa de declarar uma interface que contém apenas um método. Por exemplo, um
OnClickListener anônimo
poderia ter apenas um método, ou seja, o método
onClick
. Então você pode substituir este
OnClickListener anônimo
com uma expressão lambda.
Se você responder à mensagem pressionando Alt + Enter, o Android Studio oferece uma opção Substituir com Lambda. Se você aceita esta opção, o Android Studio transforma seu código em essas coisas.
pacote com. Allmycode. a11_05;
importar o Android. os. Agrupar;
importar o Android. Apoio, suporte. v7. aplicativo. AppCompatActivity;
importar o Android. ferramenta. Botão;
importar o Android. ferramenta. TextView;
classe pública MainActivity estende o botão AppCompatActivity {
botão;
TextView textView;
@Override
protected void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (layout R. activity_main);
botão = (Botão) findViewById (botão R. Id);
botão. setOnClickListener (view -> textView. setText (R. string. you_clicked) );
textView = (TextView) findViewById (R. Id. TextView);
}
}
Este código usa uma expressão lambda. A imagem ilustra a transição de uma classe que implementa uma interface de um método para uma expressão de lambda.
Transformando uma interface em uma expressão lambda.Observe o papel leve da palavra
exibir
. Quando você declara um método
onClick
, você fornece ao método um parâmetro do tipo
Exibir
, mesmo que as instruções dentro do método não usem esse parâmetro. Da mesma forma, quando você cria uma expressão lambda para um método
onClick
, prefira o símbolo
->
com um nome de parâmetro, mesmo que você não use esse nome de parâmetro para à esquerda do símbolo
->
.
Para usar expressões lambda, você deve atender a determinados requisitos. Por exemplo, você deve compilar seu código com Java 8 ou superior. Sua versão do Android Studio deve ser 2. 1 ou superior. E a compilação
do seu projeto. O arquivo gradle
deve incluir o seguinte código:
android {
…
defaultConfig {
…
jackOptions {
habilitado true
}
}
…
}
Uma expressão lambda pode ter mais de um parâmetro à esquerda do símbolo
->
. Se o fizer, você deve incluir todos os parâmetros entre parênteses e separar os parâmetros uns dos outros com vírgulas. Por exemplo, a expressão
(price1, price2) -> price1 + price2
é uma expressão lambda válida.
Se você se sentir confortável com as expressões lambda, você pode tornar seu código muito mais legível. O que começou como cerca de dez linhas de código pode facilmente se tornar apenas parte de uma linha.