Header

  1. View current page

    darkneo님의 노트

Profile_img_60x60_01
0

TypeSafe enum 사용하기(String)

1.5 에 추가된 enum 별 관심이 없었지만..-_-

=> 워낙 1.4 스타일로 코딩했고, 사용할만한곳이 안보여서..

     기존 프로젝트가 1.4 인녀석이 많아서 1.4밖에 사용할수 없었다는것도 큰 이유 인듯

보다 보기 좋고 효율있는 코딩을 위하여!!! 라는 취지에서 잠깐 정리해본다.

 => 사실 -_- 프로젝트 중에 사용안하면 귀찮은곳이 존재했었다;
모 장점에 대해서는 다른 곳에서 잘찾아보면 있으니깐..생략..

 

ex) DB 관련 인터페이스를 만들고자 하는 경우 정렬을 입력 받아야 하는 경우가 있다 , 이경우

     DESC , ASC 두개 만 입력 받도록 유도(메소드에 입력 클래스를 정의하고 싶다) 를 하고 이녀석을 바로 쓰고 싶은 경우가 있다..

     없을 수도 있다는..

  1.     public enum ORDER {
            DESC,
            ASC;
        }
  2.    public vodi Sort(ORDER order) {....};
  3.  
  4. System.out.println(className.ORDER.DESC); <- className 은 클래스명
  5. 라고 실행하면 DESC 가 출력된다..
  6. 사실
  7. public static final String DESC ="DESC"; 라고 해도 결과는 같다;;
  8. 그러나 메소드 정의시
  9. public vodi Sort(String order) {....};
  10. 이렇게 String 타입으로 파라메터를 정의해야 하므로 입력제어를 할수 없다.
  11. 즉,아무 문자 , 스트링 타입이면 OK 가 된다.

    1. -> 물론 클래스 생성하면 되기는 되죠;;.-_-;;;;;

     

  12.  
  13.  

모 여기까지는 다들 아는거고 ..잠깐 서핑하면 알수 있는 내용..이라고 생각을..-_-; 죄송;

참 훌륭한 enum 녀석인데 -_- 만약 '한글' ,'일어' 다른 특수 문자로 값을 제한하고 싶은경우 ;;

 

  1. public static final String DESC ="DESC SORT";
  2. public static final String CHAR ="한국어";
  3. 와 같은 표현을 enum 으로 하고 싶은 경우!!!

 

오늘 이것 때문에 -_- 좀 고생했는데..

ㅎㅎ 생각보다 엄청 간단히..해결 되었다는;;

나의 경우에는 String 그 자체가 필요했기 때문에 toString 을 오버라이딩 하면 해결이 된다는...ㅎㅎ

이것이 다 enum 이 메소드를 지원하는 훌륭한 녀석이라서 ;;

 

  1.      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)

You must log in to leave a comment. Please sign in.