Passe um método como um parâmetro em Java
-
Passe um método como um parâmetro usando a função
lambda
em Java - Passe um método como um parâmetro para um método personalizado em Java
- Passe um método como um parâmetro usando a referência de método em Java
Este tutorial apresenta a passagem de um método como parâmetro em Java. Para ajudá-lo a entender melhor este tópico, incluímos códigos de exemplo.
Não há conceito de um método de passagem como um parâmetro em Java desde o início. No entanto, podemos conseguir isso usando a função lambda e a referência de método em Java 8. Portanto, neste artigo, vamos nos concentrar mais nesses dois tópicos para passar um método como parâmetro.
A função lambda ou expressão lambda é um conceito que foi introduzido em Java 8. É uma maneira concisa de escrever uma função seguindo a abordagem de estilo funcional. Como Java e Java 8 são considerados linguagens orientadas a objetos, eles oferecem suporte à abordagem funcional para escrever o código.
Passe um método como um parâmetro usando a função lambda
em Java
Este é um exemplo simples de lambda, onde o usamos para iterar os elementos ArrayList
. Observe que estamos passando a função lambda para o método forEach()
da interface Iterable
. A classe ArrayList
implementa a interface Iterable
.
Então é assim que podemos passar um método (função lambda) como um parâmetro em Java:
public class SimpleTesting {
public static void main(String[] args) {
ArrayList<Integer> evens = new ArrayList<Integer>();
evens.add(10);
evens.add(20);
evens.add(30);
evens.add(40);
evens.forEach((n) -> { System.out.println(n); }); // passing lambda as a parameter
}
}
Resultado:
10
20
30
40
Passe um método como um parâmetro para um método personalizado em Java
Além do método integrado forEach()
, podemos passá-lo como um parâmetro para um método personalizado. Neste exemplo, criamos uma interface Doable
tendo um método doSomething()
. Na classe SimpleTesting
, temos um método show()
que chama o método doSomething()
. Dentro do método main(), criamos uma função lambda e a passamos para o método show()
.
Observe que esta é a linha onde estamos passando um método (função lambda) como um parâmetro para um método.
show("Hello", doa); // passing lambda function as parameter
interface Doable {
String doSomething(String str);
}
public class SimpleTesting {
public static void main(String[] args) {
Doable doa = (str) -> str + " Rohan";
show("Hello", doa); // passing lambda function as parameter
}
public static void show(String msg, Doable doa) {
String greeting = doa.doSomething(msg);
System.out.println(greeting);
}
}
Resultado:
Hello Rohan
Passe um método como um parâmetro usando a referência de método em Java
Esta é outra solução que pode ser usada para passar um método como parâmetro para um método. Também foi introduzido com a função lambda na versão Java 8. Neste exemplo, usamos o conceito de referência de método para passar o método show()
como um parâmetro para o construtor Thread()
, que é executado durante o tempo de execução. Veja a saída do exemplo de código aqui:
public class SimpleTesting {
public static void main(String[] args) {
// Passing method reference as a parameter
Thread thread = new Thread(SimpleTesting::show);
thread.start();
}
public static void show() {
System.out.println("My Thread");
}
}
Resultado:
My Thread