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;
}

댓글남기기