item 42 hyowon - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki

[item42] 읡λͺ… ν΄λž˜μŠ€λ³΄λ‹€λŠ” λžŒλ‹€λ₯Ό μ‚¬μš©ν•˜λΌ

// 읡λͺ… 클래슀
Collections.sort(words, new Comparator<String>() {
	public int compare(String s1, String s2) {
		return Integer.compare(s1.length(), s2.length());
	}
});

// λžŒλ‹€μ‹
Collections.sort(words,
		(s1, s2) -> Integer.compare(s1.length(), s2.length()));

μžλ°” 8 μ΄μ „κΉŒμ§€λŠ” 읡λͺ… 클래슀λ₯Ό μ‚¬μš©ν•΄ ν•¨μˆ˜ νƒ€μž…μ„ ν‘œν˜„ν–ˆλŠ”λ°, λ‹¨μ μœΌλ‘œλŠ” μ½”λ“œκ°€ κΈΈμ–΄μ Έ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ— μ ν•©ν•˜μ§€ μ•Šμ•˜λ‹€.

μžλ°” 8에 듀어와 좔상 λ©”μ„œλ“œ ν•˜λ‚˜μ§œλ¦¬ μΈν„°νŽ˜μ΄μŠ€μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό λžŒλ‹€μ‹μ„ μ‚¬μš©ν•΄ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μž‘μ„±ν•  수 있게 λ˜μ—ˆλ‹€. μžμ§ˆκ΅¬λ ˆν•œ μ½”λ“œκ°€ 사라지고 μ–΄λ–€ λ™μž‘μ„ ν•˜λŠ”μ§€ λͺ…ν™•ν•˜κ²Œ λ“œλŸ¬λ‚œλ‹€.

λžŒλ‹€μ‹μ—μ„œλŠ” νƒ€μž…μ„ μƒλž΅ν•  μˆ˜λ„ μžˆλŠ”λ°,

νƒ€μž…μ„ λͺ…μ‹œν•΄μ•Ό μ½”λ“œκ°€ 더 λͺ…ν™•ν•  λ•Œλ₯Ό μ œμ™Έν•˜κ³ λŠ” λžŒμ‚¬μ˜ λͺ¨λ“  λ§€κ°œλ³€μˆ˜ νƒ€μž…μ„ μƒλž΅ν•˜μž.

νƒ€μž… μΆ”λ‘  κ·œμΉ™μ€ μžλ°” μ–Έμ–΄ λͺ…μ„Έμ˜ μž₯ ν•˜λ‚˜λ₯Ό ν†΅μ§Έλ‘œ 차지할 만큼 λ³΅μž‘ν•˜λ‹€. 은 μ œλ„€λ¦­μ„ 톡해 μ΄λ€„μ§€λŠ”λ°, μ‹€μ‚¬μš©μ‹œ λ§€κ°œλ³€μˆ˜λ₯Ό μƒλž΅ν•˜κ³  μ‚¬μš©ν•˜λ‹€κ°€ 컴파일,λŸ°νƒ€μž„ 였λ₯˜κ°€ λ‚˜λ©΄ κ·Έλ•Œ μž‘μ„±ν•˜λ„λ‘ ν•˜μž.

λžŒλ‹€λ₯Ό μ‚¬μš©ν•΄μ„  μ•ˆ λ˜λŠ” 경우

  • 단, λžŒλ‹€λŠ” 이름이 μ—†κ³  λ¬Έμ„œν™”λ„ λͺ» ν•œλ‹€. λ”°λΌμ„œ μ½”λ“œ 자체둜 λ™μž‘μ΄ λͺ…ν™•νžˆ μ„€λͺ…λ˜μ§€ μ•Šκ±°λ‚˜, μ½”λ“œ 쀄 μˆ˜κ°€ λ§Žμ•„μ§€λ©΄ λžŒλ‹€λ₯Ό 쓰지 말아야 ν•œλ‹€.
  • ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ—μ„œλ§Œ λžŒλ‹€κ°€ 쓰인닀. κ·ΈλŸ¬λ‹ˆ 예λ₯Ό λ“€μ–΄ 좔상 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ λ•ŒλŠ” λžŒλ‹€λ₯Ό μ“Έ 수 μ—†λ‹€. 좔상 λ©”μ„œλ“œκ°€ μ—¬λŸ¬ 개인 μΈν„°νŽ˜μ΄μŠ€μ˜ μΈμŠ€ν„΄μŠ€ 생성 μ‹œμ—λ„ μ‚¬μš© λΆˆκ°€λŠ₯ν•˜λ‹€. 그럴 λ•ŒλŠ” 읡λͺ… 클래슀λ₯Ό μ“°μž.
  • λžŒλ‹€μ˜ thisλŠ” 자기 λ°”κΉ₯ μΈμŠ€ν„΄μŠ€λ₯Ό 가리킀고, 읡λͺ… 클래슀의 thisλŠ” 자기 μžμ‹ μ„ 가리킨닀. λ”°λΌμ„œ λžŒλ‹€λŠ” 자기 μžμ‹ μ„ 가리킬 수 μ—†λ‹€.
  • λžŒλ‹€λ₯Ό μ§λ ¬ν™”ν•˜λŠ” 일은 직렬화 ν˜•νƒœκ°€ κ΅¬ν˜„λ³„λ‘œ λ‹€λ₯Ό 수 μžˆμœΌλ―€λ‘œ 극히 μ‚Όκ°€μž.
⚠️ **GitHub.com Fallback** ⚠️