Long originalLong = (long) -128; Long newLong = (long) -128; System.out.println("Object Compare:" + (originalLong == newLong)); System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue())); System.out.println("Equals Compare:" + originalLong.equals(newLong));
结果为:
Object Compare:true
LongValue Compare:true
Equals Compare:true
Long originalLong = (long) 127; Long newLong = (long) 127; System.out.println("Object Compare:" + (originalLong == newLong)); System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue())); System.out.println("Equals Compare:" + originalLong.equals(newLong));
结果为:
Object Compare:true
LongValue Compare:true
Equals Compare:true
Long originalLong = (long) -129; Long newLong = (long) -129; System.out.println("Object Compare:" + (originalLong == newLong)); System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue())); System.out.println("Equals Compare:" + originalLong.equals(newLong));
结果为:
Object Compare:false
LongValue Compare:true
Equals Compare:true
Long originalLong = (long) 128; Long newLong = (long) 128; System.out.println("Object Compare:" + (originalLong == newLong)); System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue())); System.out.println("Equals Compare:" + originalLong.equals(newLong));
The result is:
Object Compare:false
LongValue Compare:true
Equals Compare: trueSummary
: When the value of the Long object is in the range of the long type, whether the value of the compared object is equal can be compared directly with "==", otherwise it needs to be compared. Use the other two methods to compare to get the correct result.
Conclusion: When comparing the value of two Long objects for equality, use the other two methods to compare directly instead of using the "==" operator.