2022. 8. 31. 16:51γJAVA/Effective JAVA
μ΄κ±° νμ Enumeration
- μμ λͺ©λ‘μ λ΄μ μ μλ λ°μ΄ν° νμ
- νΉμ ν λ³μκ° κ°μ§ μ μλ κ°μ μ νν μ μλ€.
- > Type-safe λ₯Ό 보μ₯ν μ μλ€. (λ³μκ° κ°μ§ μ μλ κ°μ μ νν΄μ λ€λ₯Έ κ°μ μ λ ₯ λͺ»νκΈ° λλ¬Έ)
- μ±κΈν€ ν¨ν΄μ ꡬνν λ μ¬μ©νκΈ°λ νλ€.
μ§λ¬Έ1) νΉμ enum νμ μ΄ κ°μ§ μ μλ λͺ¨λ κ°μ μννλ©° μΆλ ₯νλΌ.
-> Enumμ values() λ©μλλ₯Ό μλμ§ λ¬Όμ΄λ³΄λ μ§λ¬Έ
μ§λ¬Έ2) enumμ μλ°μ ν΄λμ€μ²λΌ μμ±μ, λ©μλ, νλλ₯Ό κ°μ§ μ μλκ°?
λΉμ°ν μ¬μ©ν μ μλ€.
μμ μμλ λμΆ© numberλΌλ νλλ₯Ό κ°μ§κ³ , μμ±μλ₯Ό μμ±νλ€.
μ§λ¬Έ3) enumμ κ°μ == μ°μ°μλ‘ λμΌμ±μ λΉκ΅ν μ μλκ°?
equalsλ³΄λ€ ==λ₯Ό κΆμ₯νλ μ΄μ λ
μ΄λ€ ν΄λμ€μμ OrderStatus enum νμ μ΄ μ‘΄μ¬νλ€κ³ νκ³ , μ΄λ₯Ό λΉκ΅νλ€κ³ νλ€λ©΄
XXClass.orderStatus.equals(OrderStatus.PREPARING) νμ λ,
classμ orderStatus κ°μ΄ nullμ΄λΌλ©΄ NPE κ° λ°μνκΈ° λλ¬Έμ κ΅³μ΄ μλ¬λ₯Ό λ³Ό νμλ μμΌλκΉ
λΉκ΅λΌλ©΄ == λ₯Ό μ¬μ©ν΄μ λΉκ΅νλ κ²μ κΆμ₯νλ€κ³ νλ€.
μ§λ¬Έ4) enum μ key λ‘ μ¬μ©νλ Mapμ μ μνμμ€. λλ enumμ λ΄μ Set μ μ
HashMap, HashSetμ μ¬μ©νλ κ²μ΄ μλλΌ EnumMap, EnumSetμ μ¬μ©ν΄μΌ νλ€!
(μλλ μ±λ₯μ΄ ν¨μ¬ μ’λ€κ³ ν¨)
https://www.manty.co.kr/bbs/detail/develop?id=61
λμ€μ μ°Έκ³ ν΄μ λ΄λ³΄μ!!