Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida sobre lambdas

Pelo o que eu entendi o lambda identifica automaticamente a classe ou interface e o método (implementado na mesma) que é necessário ser passado como parâmetro, mas não exige que isso esteja explícito no código, porque, o código abaixo funciona perfeitamente, ele na verdade só se importa se o tipo do retorno (nesse caso "int") é o mesmo do método que ele precisa, é isso?

lista.sort((o1,o2) -> -1);

//Resultado
{saldo=222.0, agencia=22, numero=22, titular=BR.COM.BYTEBANK.BANCO.MODELO.Cliente@7e6cbb7a}
ContaCorrente{saldo=111.0, agencia=22, numero=11, titular=BR.COM.BYTEBANK.BANCO.MODELO.Cliente@7c3df479}
{saldo=444.0, agencia=22, numero=44, titular=BR.COM.BYTEBANK.BANCO.MODELO.Cliente@7eda2dbb}
ContaCorrente{saldo=333.0, agencia=22, numero=33, titular=BR.COM.BYTEBANK.BANCO.MODELO.Cliente@6576fe71}

É claro que não ordenou de forma correta, porque o valor é sempre o mesmo, mas houve ordenação, então, funciona.

3 respostas
solução

Oi Mateus, Basicamente é isso mesmo que você disse. O compilador consegue identificar sua interface funcional para ser utilizada no lambda.

Obrigado Otávio, vou pesquisar mais sobre interfaces funcionais.

Sem problemas amigo, qualquer dúvida posta ai.

Abraço!