Item 43. Method Reference
๋๋ค๋ณด๋ค๋ ๋ฉ์๋ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ๋ผ
๋๋ค๋ ์ต๋ช ํด๋์ค๋ณด๋ค ๊ฐ๊ฒฐํ๋ค๋ ํฐ ์ฅ์ ์ด ์๋๋ฐ, ์ด๋ณด๋ค ๋ ๊ฐ๊ฒฐํ๊ฒ ํ๋ ๋ฉ์๋ ์ฐธ์กฐ๋ผ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
/*
merge ๋ฉ์๋๋ ํค, ๊ฐ, ํจ์๋ฅผ ์ธ์๋ก ๋ฐ์
ํค๊ฐ ์์ผ๋ฉด ์ฃผ์ด์ง ํค์ ๊ฐ์ผ๋ก ์๋ก์ด ํญ๋ชฉ์ ์ถ๊ฐํ๊ณ
ํค๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉด ๊ธฐ์กด ๊ฐ๊ณผ ์ฃผ์ด์ง ๊ฐ์ ํฉ์ณ์ ์๋ก์ด ๊ฐ์ ์ ์ฅํ๋ค.
*/
class Example {
public static void main(String[] args) {
// ๋๋ค
map.merge(key, 1, (count, incr) -> count + incr);
// ๋ฉ์๋ ์ฐธ์กฐ
map.merge(key, 1, Integer::sum);
}
}
๋๋ค์์ ๋ณด๋ฉด count
์ incr
๋ถ๋ถ์ด ํฌ๊ฒ ํ๋ ์ผ ์์ด ๋จ์ํ ๋ ๊ฐ์ ๋ํ๋ ๊ฒ์ ์ ์ ์๋ค.
์ด๋ฌํ ๋ถ๋ถ์ Integer ํด๋์ค(๊ทธ ์ธ์ ๋ชจ๋ ๊ธฐ๋ณธ ๋ฐ์ฑ ํ์
)์ ๋ ๊ฐ์ ๋ํ๋ ์ ์ ๋ฉ์๋ sum
์ผ๋ก ๋์ฒดํ ์ ์๋ค.
ํ์ง๋ง ๋งค๊ฐ๋ณ์ ์ด๋ฆ ์์ฒด๊ฐ ์ฝ๋ ์์์ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ ๋ฐ๋ผ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง ์ ์๋ค.
๋ฉ์๋ ์ฐธ์กฐ ์ ํ
๋ฉ์๋ ์ฐธ์กฐ ์ ํ์ ๋ค์ฏ ๊ฐ์ง๋ก, ๊ฐ์ฅ ํํ ์ ํ์ ์ ์์์์ ์ฌ์ฉํ ์ ์ ๋ฉ์๋ ์ฐธ์กฐ์ด๋ค. ๋ฉ์๋ ์ฐธ์กฐ ์ ํ์ ์๋์ ๊ฐ๋ค.
์ ์
Integer::parseInt
str -> Integer.parseInt(str)
ํ์ ์ (์ธ์คํด์ค)
Instant.now()::isAfter
Instant then = Instant.now(); t -> then.isAfter(t)
๋นํ์ ์ (์ธ์คํด์ค)
String::toLowerCase
str -> str.toLowerCase()
ํด๋์ค ์์ฑ์
TreeMap<K,V>::new
() -> new TreeMap<K,V>
๋ฐฐ์ด ์์ฑ์
int[]::new
len -> new int[len]
Last updated
Was this helpful?