我正在循環訪問Parameter
對象的集合,正在尋找Parameter.name = "Code"
。如果我不能找到它,我默認列表中的第一個參數,如下圖所示:Java foreach循環未找到現有列表元素
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
誰能解釋一下到底是怎麼回事?
你永遠不應該*實習生自己動手。 (*)對於專家:幾乎從不。如果以錯誤的方式使用它可能會導致內存泄漏。 –
@馬克:謝謝,我會重申一下這個答案。 – millimoose