Effective Java - Prefer method references to lambdas

這個item回歸Lambda的目的之一: 讓程式更清晰簡潔。以書中範例來說,它使用了Map的merge功能:

map.merge(key, 1, (count, incr) -> count + incr);
以這段程式碼來說,假如key有重複,它會將old value與第二個參數的new value相加。假如改用method reference的寫法,會更容易表達意圖:
map.merge(key, 1, Integer::sum);
但使用method reference也有可能不會達到更好效果,這個可以自行判斷。另外書中整理了以下五種method reference的方式:



Note. Bound指的是有參數的method reference,Unbound是無參數的。

其它範例可以參考link

Effective Java第三版Item 43。