[JDK 1.4 VS JDK 1.5] Boolean.TRUE 와 true
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 를 넣어도 된다는거! ㅋ