Walk with me ..
Integer x = 23; Integer y = 23; if (x == y) System.out.println("what else"); // All is well as expected else System.out.println("..."); While
Integer x = someObject.getIndex(); Integer y = someOtherObject.getSomeOtherIndex(); if (x == y) System.out.println("what else"); else System.out.println("..."); // Prints this Hmm ... I try casting to int
int x = someObject.getIndex(); int y = someOtherObject.getSomeOtherIndex() if (x == y) System.out.println("what else"); // works fine else System.out.println("..."); Are they both Integers?
System.out.println(x.getClass().getName()); // java.lang.Integer System.out.println(y.getClass().getName()); // java.lang.Integer System.out.println(someObject.getIndex()); // java.lang.Integer System.out.println(someOtherObject.getSomeOtherIndex()); // java.lang.Integer What do you guys think? What would explain something like this?
getIndex();andgetSomeOtherIndex()do?