请注意记录器信息消息和Longs的值。 .getId()返回Long值。 procDefIdIn定义为:
private static Long procDefIdIn = null;
procDefIdIn传递给此类,值为131。 最后一行日志信息是如何发生的? 我也尝试使用toString()将它们转换为Strings。结果相同。
private static void getDefinitions(List<DefinitionProcess> processes)
{
Long procDefId = null;
for (Iterator<DefinitionProcess> iterator = processes.iterator(); iterator.hasNext(); ) {
DefinitionProcess proc = iterator.next();
if(procDefIdIn != null){
procDefId = procDefIdIn;
logger.info(String.format("proc = #%d procDefIdIn = #%d", proc.getId(), procDefIdIn));
if(procDefIdIn != proc.getId()){ // How does 131 && 131 get past this?
logger.info(String.format("Removed proc = #%d", proc.getId()));
iterator.remove();
continue;
}
}
else{
procDefId = proc.getId();
}
........
//Code here does not execute
.......
}
}
INFO - proc =#129 procDefIdIn =#131
INFO - 删除了proc =#129
INFO - proc =#130 procDefIdIn =#131
INFO - 删除了proc =#130
INFO - proc =#131 procDefIdIn =#131
INFO - 删除了proc =#131 //?!?!
答案 0 :(得分:3)
请使用
if(!procDefIdIn.equals(proc.getId())){