項目 ラムダよりもメソッドへの参照を優先する

王林
リリース: 2024-07-19 14:02:39
オリジナル
635 人が閲覧しました

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.

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

以上が項目 ラムダよりもメソッドへの参照を優先するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!