그거/Tech

[JDK 1.4 VS JDK 1.5] Boolean.TRUE 와 true

뽀기 2007. 11. 5. 10:45

public class BooleanTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  Boolean bl = new Boolean(true);
 
  if( Boolean.TRUE == true ) {
   System.out.println("# " + Boolean.TRUE );
  } else {
   System.out.println("# " + true);
  }
 }
}



자자자...


1) 위 소스를 JDK 1.4 에서 컴파일 하면~~~~??
2) 위 소스를 JDK 1.5 에서 컴파일 하면~~~~??



<답>
1) Incompatible operand types Boolean and boolean
2) 아~~~~~~~무 이상 없이 잘 됨. ㅋ



<원인>
JDK 1.5 에서는 Autoboxing 기능이 추가됐다.
Object와 primitive type 간에 형변환이 자동이다~~~~


<뽀나스>
  List<Integer> list = new ArrayList<Integer>();
 
  list.add(0, 1);
  list.add(1, 2);
  list.add(2, new Integer(3));
 
  int j = 0;
  for(int i : list) {
   System.out.println("# " + (j++) + " : " +  (i + j));
  }
 }


위 소스를 JDK 1.5 에서 컴파일 하면~~?????

아~~~~~무 문제 없다. ㅋ
Generic을 이용해서 ArrayList에 Integer 만 넣도록 했지만 Autoboxing 기능에 의해
primitive type 인 int 를 넣어도 된다는거! ㅋ