본문 바로가기
JAVA

Hashtable의 keys() 와 elements() 메소드의 차이점.

by eqzero 2008. 1. 7.
오늘도 삽질로 시간을 낭비한듯하네..ㅜ_ㅡ

아래와 같은 구문이 있다.
Hashtable param = new Hashtable();
Object chkValue = null;

 Enumeration keys = param.keys();
 while(keys.hasMoreElements()){
  chkValue = keys.nextElement();
  
  if(chkValue instanceof String){
   System.out.println("문자형");
  } else if (chkValue instanceof ArrayList){
   System.out.println("배열");
 }

위와 같이 했을 경우 if문의 조건절은 무조건 String형만 타게된다..이유는 keys()는 말대로 hashtable의 키값만을 리턴한다.
param.set("title", "abcs");
햇을경우 title을 리턴하게 된다. 고로 chkValue는 String만 존재할뿐이다.
하지만 Enumeration keys = param.elements(); 를 해주게되면 hashtable의 밸류값을 가져온게된다.
"abcs"값을 가져온다는 말이다.

이 차이점을 구분을 못해서 그냥 keys()로 받는 Object가 hashtable의 value값은 배열인데 자꾸 String으로 타는게 아닌가..ㅜ_ㅡ..
기초가 부족하다고 다시한번 느끼게 해준다...
api만 조금 쉽게 이해했더라면 삽질 안해도 됏을텐데..끄응..

'JAVA' 카테고리의 다른 글

Eclipse에서 java-doc생성시 utf-8문서 생성 옵션  (0) 2009.07.26
StringBuffer 와 StringBuilder 차이점  (2) 2008.12.22
jar파일 검색 사이트.  (0) 2008.11.12
자바 클래스 디컴파일러  (0) 2007.04.10
DataBase별 JDBC 설정  (0) 2006.11.12