Doubt in AutoBoxing
Hi,
Can anybody explain why am i getting true in first case and false in second.
publicvoid method(Integer i1, Integer i2){
System.err.println(i1 == i2);
}
delMe.method(100, 100);// true
delMe.method(128, 128);// false
Hi,
Can anybody explain why am i getting true in first case and false in second.
publicvoid method(Integer i1, Integer i2){
System.err.println(i1 == i2);
}
delMe.method(100, 100);// true
delMe.method(128, 128);// false
Integers >= -128 && i <= 127 are being cached so these are pointing to the same object: hence == returns true for these cases.
Compare them like this:public void method(Integer i1, Integer i2){
System.err.println(i1.intValue() == i2.intValue());
}