1
resposta

qual a função desse código ?

Function<Usuario, String> funcao = Usuario::getNome;

1 resposta

Bom dia, Diego, tudo bem?

Esse função, aplicada no seguinte contexto, ordena por ordem alfabética.

Basicamente ela é um lambda que dado um usuario retorna o nome dele.

Se você pegar essa função e colocar no System.out.println(funcao) vai ser exibido no console

"br.com.lucas.collections.Lambda$$Lambda$1/531885035@776ec8df"

        List<Usuario> usuarios = new ArrayList<Usuario>();
        Function<Usuario, String> funcao = Usuario::getNome;

        Usuario u1 = new Usuario();
        u1.setNome("Lucas");
        Usuario u2 = new Usuario();
        u2.setNome("Joao");
        Usuario u3 = new Usuario();
        u3.setNome("Ana");

        usuarios.add(u1);
        usuarios.add(u2);
        usuarios.add(u3);

        usuarios.sort(Comparator.comparing(funcao));

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