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?