[JAVA] ๋” ์ž๋ฐ”, Java 8 ์ธํ„ฐํŽ˜์ด์Šค ๋ณ€ํ™”

2022. 4. 6. 10:05ใ†JAVA/study

728x90

 

1๏ธโƒฃ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ Default Methods 

์ธํ„ฐํŽ˜์ด์Šค์— ๋ฉ”์†Œ๋“œ ์„ ์–ธ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„์ฒด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ• 

ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋ฅผ ๊นจํŠธ๋ฆฌ์ง€ ์•Š๊ณ  ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. 

๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ๋Š” ๊ตฌํ˜„์ฒด๊ฐ€ ๋ชจ๋ฅด๊ฒŒ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ทธ ๋งŒํผ ๋ฆฌ์Šคํฌ๊ฐ€ ์žˆ๋‹ค. 

-> ์ปดํŒŒ์ผ ์—๋Ÿฌ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ตฌํ˜„์ฒด์— ๋”ฐ๋ผ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

-> ๋ฐ˜๋“œ์‹œ ๋ฌธ์„œํ™”ํ•  ๊ฒƒ!! (@ImpleSpec ์ž๋ฐ”๋… ํƒœ๊ทธ ์‚ฌ์šฉ!)

Object๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ(equals, hasCode)๋Š” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋‹ค. 

-> ๊ตฌํ˜„์ฒด๊ฐ€ ์žฌ์ •์˜ํ•ด์•ผํ•œ๋‹ค. 

๋ณธ์ธ์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—๋งŒ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋‹ค์‹œ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด๊ฐ€ ์žฌ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

default void printNameUppserCase() 

 

 

2๏ธโƒฃ Static ๋ฉ”์†Œ๋“œ 

ํ•ด๋‹น ํƒ€์ž… ๊ด€๋ จ ํ—ฌํ„ฐ ๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•  ๋•Œ ์ธํ„ฐํŽ˜์ด์Šค์— ์Šคํƒœํ‹ฑ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. 

-> printAnything() 

 

 

3๏ธโƒฃ ์ž๋ฐ”8 API์˜ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ์™€ ์Šคํƒœํ‹ฑ ๋ฉ”์†Œ๋“œ 

์ž๋ฐ” 8์—์„œ ์ถ”๊ฐ€ํ•œ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ๋กœ ์ธํ•œ API ๋ณ€ํ™”

 

Iterable์˜ ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ 

- forEach()

- spliterator() : ์ชผ๊ฐค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„๊ฒƒ! (์ด๊ฑฐ ์•Œ๋ฉด ์ข€ ์ž๋ฐ” 8 ์•ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค๋‚˜ ๋ญ๋ผ๋‚˜...) 

name.forEach(System.out::println);์œผ๋กœ ํ•˜๋ฉด ์ง„์งœ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จํ•ด์ง„๋‹ค!!! 

 

 

Collection์˜ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ

- stream() / parallelStream()

- removeIf(Predicate)

- spliterator() 

 

 

Comparator์˜ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ ๋ฐ ์Šคํƒœํ‹ฑ ๋ฉ”์†Œ๋“œ 

- reversed()

- thenComparing()

- static reverseOrder() / naturalOrder()

- static nullsFirst() / static nullsLast()

- static comparing() : ์ •๋ ฌ 

 

 

 

 

 

 

728x90