Небольшое изменение вашего кода сделает его длиннее, но гораздо проще найти ошибку ... вместо того, чтобы делать:
if (order.getOrderID().equalsIgnoreCase(im.getOrderID())) {
Измените его на:
String orderID = order.getOrderID();
String imOrderID = im.getOrderID();
if(orderID.equals(imOrderID()) {
ТогдаВы будете знать, является ли order
или im
нулевым.Если ни один из них не имеет значения null, то значениями, которые могут быть нулевыми, являются orderID
и imOrderID
.Теперь просто выяснить, какой из них имеет значение null.
Если это порядок или im, то программа завершится сбоем в строках order.getOrderID()
или im.getOrderID()
.
Если вместо этого orderID
или imOrderID
равен нулю, то произойдет сбой if(orderID.equals(imOrderID()) {
.Затем вы можете использовать System.out.println (или что-то лучше, например, отладчик), чтобы легко выяснить, что не так.
Если ни один из них не должен быть нулевым, тогда я предлагаю добавить что-то вроде:
if(orderID == null) { throw new IllegalStateException("orderID cannot be null"); }
if(imOrderID == null) { throw new IllegalStateException("imOrderID cannot be null"); }
, а затем отследите, как для него было установлено значение null.