Skip to main content
PreparationZone Logo
PreparationZone
Back to Java

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();
}
Model answerPreview

Root cause

  • == on Integer compares references. JVM caches boxed integers only for -128..127.