Java · Medium · Pro
Debug: why does boxed Integer comparison fail for order IDs?
JavaCore JavaTrickySenior
Orders with ID 128 never match in this filter.
Java
Integer threshold = 127;
Integer orderId = request.getOrderId(); // may be > 127
if (orderId == threshold) {
applyDiscount();
}Root cause
==onIntegercompares references. JVM caches boxed integers only for -128..127.