TypeSafe enum 사용하기(String)
1.5 에 추가된 enum 별 관심이 없었지만..-_-
=> 워낙 1.4 스타일로 코딩했고, 사용할만한곳이 안보여서..
기존 프로젝트가 1.4 인녀석이 많아서 1.4밖에 사용할수 없었다는것도 큰 이유 인듯
보다 보기 좋고 효율있는 코딩을 위하여!!! 라는 취지에서 잠깐 정리해본다.
=> 사실 -_- 프로젝트 중에 사용안하면 귀찮은곳이 존재했었다;
모 장점에 대해서는 다른 곳에서 잘찾아보면 있으니깐..생략..
ex) DB 관련 인터페이스를 만들고자 하는 경우 정렬을 입력 받아야 하는 경우가 있다 , 이경우
DESC , ASC 두개 만 입력 받도록 유도(메소드에 입력 클래스를 정의하고 싶다) 를 하고 이녀석을 바로 쓰고 싶은 경우가 있다..
없을 수도 있다는..
- public enum ORDER {
DESC,
ASC;
} - public vodi Sort(ORDER order) {....};
- System.out.println(className.ORDER.DESC); <- className 은 클래스명
- 라고 실행하면 DESC 가 출력된다..
- 사실
- public static final String DESC ="DESC"; 라고 해도 결과는 같다;;
- 그러나 메소드 정의시
- public vodi Sort(String order) {....};
- 이렇게 String 타입으로 파라메터를 정의해야 하므로 입력제어를 할수 없다.
-
즉,아무 문자 , 스트링 타입이면 OK 가 된다.
- -> 물론 클래스 생성하면 되기는 되죠;;.-_-;;;;;
모 여기까지는 다들 아는거고 ..잠깐 서핑하면 알수 있는 내용..이라고 생각을..-_-; 죄송;
참 훌륭한 enum 녀석인데 -_- 만약 '한글' ,'일어' 다른 특수 문자로 값을 제한하고 싶은경우 ;;
- public static final String DESC ="DESC SORT";
- public static final String CHAR ="한국어";
- 와 같은 표현을 enum 으로 하고 싶은 경우!!!
오늘 이것 때문에 -_- 좀 고생했는데..
ㅎㅎ 생각보다 엄청 간단히..해결 되었다는;;
나의 경우에는 String 그 자체가 필요했기 때문에 toString 을 오버라이딩 하면 해결이 된다는...ㅎㅎ
이것이 다 enum 이 메소드를 지원하는 훌륭한 녀석이라서 ;;
- public enum Conditon {
CHAR {
public String toString() {
return "한국어";
};
},
DESC {
public String toString() {
return "DESC SORT";
};
};
}
그런데 이너클래스(inner class) 냄새가 -_-;
SCJP5.pdf <- 1.5 참조문서
P.S 그나저나 1.6은 언제-_- 파악하나...게을러 빠져서...서
History
Last edited on 01/21/2008 14:26 by darkneo
Comments (0)