Enum
μ΄κ±° νμ (Enum)
μ΄κ±° νμ μ κ³ μ κ°―μμ μμλ€λ‘ κ°μ΄ ꡬμ±λλ μλ£νμ΄λ€.
λ¬΄μ¨ λ§μ΄λλ©΄,
public static final String ONE = "1";
public static final String TWO = "2";
public static final String THREE = "3";
public static final String FOUR = "4";
// enum
public enum Number {
ONE("1"), TWO("2"), THREE("3"), FOUR("4")
}μ΄λ κ² μμλ€μ ν΄λμ€μ λ¬Άμ΄λμ κ²μ΄λ€.
μ΄κ±°ν νλͺ©μ μ κ·Όνκ³ μΆμΌλ©΄, Number.ONE κ°μ νκΈ°λ²μ μ¬μ©ν΄μ μ κ·Όν μ μλ€.
μ₯μ
Type Safety
μ»΄νμΌ νμμ νμ
μμ μ±μ 보μ₯ν΄μ€λ€.
μ¦, μ°μ°μ΄λ μ‘°μ§μ μμ΄μ λΉλ Όλ¦¬μ μΈ λΆλΆμ λν΄μ check νμ¬ Runtime μ μ μ€λ₯λ₯Ό μλ°©νλ€.
κ°λ μ±κ³Ό μ μ§ λ³΄μ μ©μ΄
enumμ κ°λ€μ΄ λͺ μμ μΌλ‘ μ μλμ΄ μκΈ° λλ¬Έμ μ½λλ₯Ό μ½μ λ μ΄λ €μμ΄ μκ³ μ½λμ μλ―Έλ₯Ό λͺ ννκ² νννκ³ μλ€. λ, μλ‘μ΄ μμλ₯Ό μΆκ°νκ±°λ κΈ°μ‘΄ μμλ₯Ό λ³κ²½νλλΌλ μ¬μ©νλ κ³³μμ μλμΌλ‘ μ μ©λλ€.
μ±κΈν€
μ±κΈν€μ΄λ, νλμ JVMλΉ νλμ μΈμ€ν΄μ€λ§ μ‘΄μ¬νλ ν΄λμ€λ₯Ό μλ―Ένλ€. λμΌν μ±κΈν΄ μΈμ€ν΄μ€λ, μ¬λ¬ μ€λ λμμ μ¬μ¬μ© ν μ μλ€.
μμλ type safetyνμ§ μκΈ° λλ¬Έμ λλ±μ±("==") λΉκ΅λ₯Ό νΌνλ κ²μ΄ μ’λ€. λ, μμλ₯Ό μ¬μ©νλ©΄ switchλ¬Έμ μ¬μ©ν μ μλ€. νμ§λ§ Enum νμ
μ μ±κΈν€μ 보μ₯νλ€. μμλ₯Ό ν΅ν΄μ 보면 Enumμ λΉκ΅ν λλ == μ¬μ©νλ κ²μ΄ λ μμ νλ€κ³ μκ°νλ€.
λλ±μ± λΉκ΅λ μ»΄νμΌ νμμ νΈνμ± κ²μ¬λ₯Ό μ§μνλ€. μ¦, μλͺ»λ λΉκ΅λ₯Ό νλ©΄ μ»΄νμΌ νμμ κ²μ¬λλ€. νμ§λ§ equals()λ λ°λ‘ μ»΄νμΌ λλ€.
κ°μ΄ λμ μΌλ‘ λ³νκ° μκ±°λ, μλ‘μ΄ μμκ° μΆκ°κ° λμ§ μλ κ²½μ°λΌλ©΄ μμλ₯Ό μ¬μ©νκ³ κ·Έ μΈμλ enumμΌλ‘ κ΄λ¦¬νλ κ²μ΄ μ’μκ² κ°λ€.
Last updated