这项工作正在谈论30多个小时的时间。该迭代器可容纳80万条记录,并且循环必须为每条记录执行,并且在同一方法中大约有20多个这些检查。在这里如何避免圈复杂度?
CustomerPreference newRecord = null;
while (iterator.hasNext())
{
final CustomerPreference current = iterator.next();
if (newRecord != null)
{
if (!newRecord.getEmail().equals(current.getEmail()))
{
resList.add(newRecord);
newRecord = current;
}
}
else
{
newRecord = current;
}
if (null != current.getEmailPref())
{
newRecord.setEmailPref(current.getHdCaEmailPref());
}
else
{
if (newRecord.getEmailPref() == null)
{
newRecord.setEmailPref(NO_CHANGE);
}
}
最佳答案
如果这只是一个内部应用程序,请进行检查并将代码包含在try / catch块中,尤其是在空引用的可能性很小的情况下。
catch块将继续循环。