item 43 JungHyunLyoo - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki

κ°„κ²°ν•¨μ˜ μˆœμ„œ

읡λͺ… 클래슀 < λžŒλ‹€ < λ©”μ„œλ“œ μ°Έμ‘°(method reference)

λžŒλ‹€ <-> λ©”μ„œλ“œ μ°Έμ‘° 비ꡐ

λžŒλ‹€ : map.merge(key, 1, (count, incr) -> count + incr)

λ©”μ„œλ“œ μ°Έμ‘° : map.merge(key, 1, Integer::sum)

λ©”μ„œλ“œ μ°Έμ‘° μ‰½κ²Œ μ‚¬μš©ν•˜λŠ” 방법

  1. λžŒλ‹€λ‘œ μž‘μ„±
  2. κ·Έ λžŒλ‹€ 식을 λ©”μ„œλ“œν™”
  3. λžŒλ‹€λ₯Ό μƒˆλ‘œμš΄ λ©”μ„œλ“œλ‘œ λŒ€μ²΄

λ³΄ν†΅μ˜ κ²½μš°μ—” λ©”μ„œλ“œ λžŒλ‹€λ³΄λ‹€ λ©”μ„œλ“œ μ°Έμ‘°κ°€ κ°„κ²°ν•˜μ§€λ§Œ μ˜ˆμ™Έκ°€ μžˆλ‹€

GoshThisClassNameIsHumongous class 내뢀에 μ•„λž˜μ˜ μ½”λ“œκ°€ μžˆλ‹€κ³  μƒκ°ν•΄λ³΄μž

service.execute(GoshThisClassNameIsHumongous::action)

이λ₯Ό λžŒλ‹€λ‘œ λŒ€μ²΄ν•˜λ©΄?

service.execute(() -> action)

λ©”μ„œλ“œμ™€ λžŒλ‹€κ°€ 같은 ν΄λž˜μŠ€μ— μžˆμ„ κ²½μš°μ—” λžŒλ‹€κ°€ 더 짧고 λͺ…ν™•ν•  수 μžˆλ‹€.

λ©”μ„œλ“œ 참쑰의 5가지 μœ ν˜•

  1. 정적 λ©”μ„œλ“œ μ°Έμ‘°(κ°€μž₯ 많이 μ‚¬μš©)
Integer::parseInt
str -> Integer.parseInt(str)
  1. ν•œμ •μ  (μΈμŠ€ν„΄μŠ€) λ©”μ„œλ“œ μ°Έμ‘°
Instant.now()::isAfter
Instance then = Instant.now(); t -> then.isAfter(t)
  1. λΉ„ν•œμ •μ  (μΈμŠ€ν„΄μŠ€) λ©”μ„œλ“œ μ°Έμ‘°
String::toLowerCase
str -> str.toLowerCase
  1. 클래슀 μƒμ„±μž
TreeMap<K,V>::New
() -> new TreeMap<K,V>()
  1. λ°°μ—΄ μƒμ„±μž
int[]::new
len -> new int[len]

κ²°λ‘ 

λ©”μ„œλ“œ μ°Έμ‘° μͺ½μ΄ 짧고 λͺ…ν™•ν•˜λ‹€λ©΄ λ©”μ„œλ“œ μ°Έμ‘°λ₯Ό, 그렇지 μ•ŠμœΌλ©΄ λžŒλ‹€λ₯Ό μ‚¬μš©ν•˜λΌ

⚠️ **GitHub.com Fallback** ⚠️