6.5 Referenciando métodos que recebem argumen tos

Referenciando métodos que aceitam parâmetros: Podemos usar method references para métodos que recebem argumentos, como println da classe PrintStream. Exemplo: usuarios.forEach(System.out::println); O compilador entende que System.out::println é equivalente a um lambda: u -> System.out.println(u); Durante a iteração com forEach, cada elemento da lista é passado automaticamente como argumento para println. Equivalência com código Java 7: O método reference é equivalente ao laço tradicional: for (Usuario u : usuarios) { System.out.println(u); } Importância do toString: Para exibir corretamente os usuários, o método toString deve ser sobrescrito na classe Usuario: public String toString() { return "Usuario " + nome; } Exemplo completo em Java: public class Capitulo6 { public static void main(String... args) { Usuario user1 = new Usuario("Paulo Silveira", 150); Usuario user2 = new Usuario("Rodrigo Turini", 120); Usuario user3 = new Usuario("Guilherme Silveira", 190); List usuarios = Arrays.asList(user1, user2, user3); usuarios.forEach(System.out::println); } } Esse código cria uma lista de usuários e imprime cada um usando System.out::println. Conclusão: Quando usamos System.out::println, o compilador entende que cada item da lista será passado como argumento ao método println. Method references tornam o código mais conciso e legível. O toString da classe Usuario deve ser sobrescrito para que a saída seja mais informativa.

Mar 15, 2025 - 05:40
 0
6.5 Referenciando métodos que recebem argumen tos

Referenciando métodos que aceitam parâmetros:

Podemos usar method references para métodos que recebem argumentos, como println da classe PrintStream.
Exemplo:

usuarios.forEach(System.out::println);

O compilador entende que System.out::println é equivalente a um lambda:

u -> System.out.println(u);

Durante a iteração com forEach, cada elemento da lista é passado automaticamente como argumento para println.
Equivalência com código Java 7:

O método reference é equivalente ao laço tradicional:

for (Usuario u : usuarios) {
    System.out.println(u);
}

Importância do toString:

Para exibir corretamente os usuários, o método toString deve ser sobrescrito na classe Usuario:

public String toString() {
    return "Usuario " + nome;
}

Exemplo completo em Java:

public class Capitulo6 {
    public static void main(String... args) {
        Usuario user1 = new Usuario("Paulo Silveira", 150);
        Usuario user2 = new Usuario("Rodrigo Turini", 120);
        Usuario user3 = new Usuario("Guilherme Silveira", 190);

        List usuarios = Arrays.asList(user1, user2, user3);

        usuarios.forEach(System.out::println);
    }
}

Esse código cria uma lista de usuários e imprime cada um usando System.out::println.

Conclusão:
Quando usamos System.out::println, o compilador entende que cada item da lista será passado como argumento ao método println.
Method references tornam o código mais conciso e legível.
O toString da classe Usuario deve ser sobrescrito para que a saída seja mais informativa.