Item 43: Dê preferência às referências para métodos em vez dos lambdas

Vantagens das Referências para Métodos

Concisão: Referências para métodos são mais concisas que lambdas.
Exemplo: Incrementar valor em um Map usando merge:
Lambda: (count, incr) -> count + incr
Referência para método: Integer::sum

Redução de Boi…


This content originally appeared on DEV Community and was authored by Mulher Programadora

Vantagens das Referências para Métodos

  • Concisão: Referências para métodos são mais concisas que lambdas.
    Exemplo: Incrementar valor em um Map usando merge:

  • Lambda: (count, incr) -> count + incr
    Referência para método: Integer::sum

Redução de Boilerplate
Remoção de Parâmetros Inúteis: Parâmetros como count e incr são eliminados.
Exemplo:

map.merge(key, 1, Integer::sum);

Uso Eficiente de Referências para Métodos

  • Documentação Útil em Lambdas: Em alguns casos, nomes de parâmetros em lambdas podem fornecer documentação útil.
  • Conversão de Lambdas para Métodos: Se um lambda for muito complexo, extrair o código para um método separado e usar a referência para esse método.

IDEs e Referências para Métodos

  • Sugestões de IDE: IDEs frequentemente sugerem substituição de lambdas por referências para métodos.
  • Aceitação das Sugestões: Geralmente, aceite as sugestões, mas avalie caso a caso.

Exceções e Considerações

  • Lambdas mais Concisos: Às vezes, lambdas são mais concisos que referências para métodos.
  • Exemplo com Classe:
  • Referência para método: GoshThisClassNameIsHumongous::action
  • Lambda: () -> action()
  • Função Identidade: Function.identity() vs. x -> x

Tipos de Referências para Métodos

  • Estática: Integer::parseInt (lambda: str -> Integer.parseInt(str))
  • Limitada: Instant.now()::isAfter (lambda: t -> Instant.now().isAfter(t))
  • Ilimitada: String::toLowerCase (lambda: str -> str.toLowerCase())
  • Construtor de Classe: TreeMap::new (lambda: () -> new TreeMap)
  • Construtor de Array: int[]::new (lambda: len -> new int[len])

Conclusão
Preferência pelas Referências para Métodos: Use referências para métodos quando forem mais curtas e claras que lambdas.
Uso de Lambdas: Prefira lambdas se eles forem mais concisos ou se fornecerem melhor documentação.

Image description


This content originally appeared on DEV Community and was authored by Mulher Programadora


Print Share Comment Cite Upload Translate Updates
APA

Mulher Programadora | Sciencx (2024-07-18T16:49:42+00:00) Item 43: Dê preferência às referências para métodos em vez dos lambdas. Retrieved from https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/

MLA
" » Item 43: Dê preferência às referências para métodos em vez dos lambdas." Mulher Programadora | Sciencx - Thursday July 18, 2024, https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/
HARVARD
Mulher Programadora | Sciencx Thursday July 18, 2024 » Item 43: Dê preferência às referências para métodos em vez dos lambdas., viewed ,<https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/>
VANCOUVER
Mulher Programadora | Sciencx - » Item 43: Dê preferência às referências para métodos em vez dos lambdas. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/
CHICAGO
" » Item 43: Dê preferência às referências para métodos em vez dos lambdas." Mulher Programadora | Sciencx - Accessed . https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/
IEEE
" » Item 43: Dê preferência às referências para métodos em vez dos lambdas." Mulher Programadora | Sciencx [Online]. Available: https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/. [Accessed: ]
rf:citation
» Item 43: Dê preferência às referências para métodos em vez dos lambdas | Mulher Programadora | Sciencx | https://www.scien.cx/2024/07/18/item-43-de-preferencia-as-referencias-para-metodos-em-vez-dos-lambdas/ |

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.