6.4 Referenciando métodos de instância

Criando um method reference para um objeto específico:

Se temos um objeto (rodrigo), podemos referenciar um de seus métodos como rodrigo::tornaModerador.
Exemplo:

Usuario rodrigo = new Usuario(“Rodrigo Turini”, 50);
Runnable bloco = rodrigo::tornaM…


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA

Criando um method reference para um objeto específico:

Se temos um objeto (rodrigo), podemos referenciar um de seus métodos como rodrigo::tornaModerador.
Exemplo:

Usuario rodrigo = new Usuario("Rodrigo Turini", 50);
Runnable bloco = rodrigo::tornaModerador;
bloco.run(); // Equivalente a rodrigo.tornaModerador()

Esse method reference equivale a um lambda:

Runnable bloco2 = () -> rodrigo.tornaModerador();

Diferença entre rodrigo::tornaModerador e Usuario::tornaModerador:

rodrigo::tornaModerador refere-se a um método de um objeto específico (rodrigo), podendo ser inferido como Runnable (pois não recebe parâmetros).
Usuario::tornaModerador refere-se ao método de qualquer objeto do tipo Usuario, e pode ser inferido como Consumer, pois precisa de um argumento (Usuario).

Exemplo:

Consumer<Usuario> consumer = Usuario::tornaModerador;
consumer.accept(rodrigo); // Invoca rodrigo.tornaModerador()

Equivalente ao lambda:

Consumer<Usuario> consumer2 = u -> u.tornaModerador();

Erros ao misturar tipos de referências:

Não é possível atribuir Usuario::tornaModerador a Runnable, pois este não recebe argumentos, enquanto Consumer exige um parâmetro.
Exemplo inválido:

Runnable consumer = Usuario::tornaModerador; // Erro de compilação!

Conclusão:

Method references permitem referenciar métodos de instância de objetos específicos ou de qualquer instância de uma classe.
O compilador infere o tipo da interface funcional correta com base no contexto.


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA


Print Share Comment Cite Upload Translate Updates
APA

FUNDAMENTOS JAVA | Sciencx (2025-03-15T03:43:52+00:00) 6.4 Referenciando métodos de instância. Retrieved from https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/

MLA
" » 6.4 Referenciando métodos de instância." FUNDAMENTOS JAVA | Sciencx - Saturday March 15, 2025, https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/
HARVARD
FUNDAMENTOS JAVA | Sciencx Saturday March 15, 2025 » 6.4 Referenciando métodos de instância., viewed ,<https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/>
VANCOUVER
FUNDAMENTOS JAVA | Sciencx - » 6.4 Referenciando métodos de instância. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/
CHICAGO
" » 6.4 Referenciando métodos de instância." FUNDAMENTOS JAVA | Sciencx - Accessed . https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/
IEEE
" » 6.4 Referenciando métodos de instância." FUNDAMENTOS JAVA | Sciencx [Online]. Available: https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/. [Accessed: ]
rf:citation
» 6.4 Referenciando métodos de instância | FUNDAMENTOS JAVA | Sciencx | https://www.scien.cx/2025/03/15/6-4-referenciando-metodos-de-instancia/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.