Java Enum
Reference
참고 : 공식 문서
참고 : 우아한 기술 블로그 https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html
What is Enum?
java에서 Enum은 열거형 (enumerated type)입니다.
열거형은 쉽게 상수의 나열이라고 생각하면 됩니다.
열거형이 상수선언과 비슷하지만 Enum은 객체로 내부의 값을 포함 할 수 있습니다.
- Wikipedia 참고
enumerated type is a data type consisting of a set of named values called elements, members, enumeral, or enumerators of the type.
How To Use
기본 사용법은 String을 대신하여 사용하는 것입니다.
public enum Fruit {
APPLE, ORANGE, PEACH, BANANA
}
// 사용을 원하는 곳에서 Fruit.APPLE 로 사용
Fruit 는 enum 타입으로 위의 4가지 값 중 하나만 가질 수 있기 때문에 IDE의 도움을 받을 수 있고 개발자의 실수를 줄여줍니다.
enum의 String 값을 추출하려면 toString(), 순서를 추출하려면 ordinal() 이 있습니다.
Fruit.ORANGE.equals("ORANGE") // false (타입 불일치)
Fruit.ORANGE.toString().equals("") // true
Fruit.PEACH.ordinal() // 2
Examples of Advances
Enum은 객체타입이므로 속성을 더 가질 수 있습니다.
(* 다만 속성 추가시 꼭 생성자를 만들어줘야 합니다.)
public enum Fruit {
APPLE("apple",80),
ORANGE("orange",50),
PEACH("peach",200),
BANANA("banana",100);
private final String name;
private final int calorie;
Fruit(String name, int calorie) {
this.name = name;
this.calorie = calorie;
}
public String getName() {
return name;
}
public int getCalorie() {
return calorie;
}
}
이젠 APPLE 이란 Enum에 이름과 칼로리란 속성을 추가하였습니다.
아래와 같이 List도 추가 할 수 있습니다.
APPLE("apple",80, Arrays.asList(3,4,5))
Fruit(String name, int calorie, List<Integer> season) {
this.name = name;
this.calorie = calorie;
this.season = season;
}
댓글남기기