Я перебираю коллекцию Parameter
объектов, ищу Parameter.name = "Code"
.Если я не могу его найти, я по умолчанию использую первый параметр в списке, как показано ниже:
header = WBMessageFactory.getWBMessageDescriptor(Configuration.getWBHeaderIDString());
for (Parameter p : header.getSegment().getParameter()) {
if (p.getName() == "Code") {
String wbCode = raw.substring(p.getStartPosition().intValue(), p.getLength().intValue());
logger.info("Found WB code... " + wbCode);
body = WBMessageFactory.getWBMessageDescriptor(wbCode);
break;
}
}
if (body == null) {
Parameter p = header.getSegment().getParameter().get(0);
logger.error("Could not find Code parameter in Header template, using " + p.getName());
body = WBMessageFactory.getWBMessageDescriptor(raw.substring(p.getStartPosition().intValue(), p.getLength().intValue()));
}
Как видите, я регистрирую имя Parameter
, когда не могу найти код. Иногда , ведение журнала выявляет следующее:
Could not find Code parameter in Header template, using Code
Кто-нибудь может объяснить, что происходит, черт возьми?