java enum
o 클래스처럼 보이게 하는 상수
¡ 예를 들어 Config 라는 클래스를 만들고 맴버로 KVM,XenServer를 두고 싶음
- 기존의 클래스로 구현하는 방식 (Config.java)
public class Config { public static final int KVM = 1; public static final int XenServer = 2; } |
- 위와 같이 클래스로 구현한다.
- 여기에서의 문제점은 1,2 값이 KVM, XenServer 만을 가르키지 않는다
- 또한 3,4 와 같은 숫자가 들어 올 수도 있다
¡ 이러한 문제점을 해결하기 위해서 JAVA 1.5 에서 enum 이 추가 되었다.
public enum Config { KVM,XenServer } |
¡ 출력
public class HelloWorld { public static void printHypervisor (Config c){ System.out.println(c); } public static void main(String[] args) { printHypervisor(Config.KVM); } } |
o enum의 확장(함수처럼 보이게)
¡ 함수처럼 () 안에 인자를 넣어서 enum 리스트를 만듦(Config.java)
- 실제적으로 Config 가 생성될 때 cfg_string 에 parameter를 넣는다
- 함수를 정의할 수 있음: get_cfg()
public enum Config { OS("Linux, Windows"), HypervisorList("KVM Type,XenServer Type");
private String cfg_string; Config(String arg) { this.cfg_string = arg; } String get_cfg() { return cfg_string; } } |
¡ 사용하는 방법 (HelloWorld.java)
public class HelloWorld { public static void main(String[] args) { System.out.println(Config.HypervisorList.get_cfg()); System.out.println(Config.OS.get_cfg()); } } |
- 결과
KVM Type,XenServer Type Linux, Windows |
'Language > Java' 카테고리의 다른 글
Java Doc (0) | 2014.02.27 |
---|---|
Java에서 직렬화(Serializable)가 불가능한 경우 (0) | 2014.02.27 |
Java Varargs (가변인자) 사용법 (1) | 2014.02.27 |
Dom4j를 이용한 XML Parsing (0) | 2014.02.27 |
ArrayList와 HashMap의 차이점 (Java Collection) (0) | 2014.02.27 |