3

当我调试我的代码时,我发现返回的hasNext()方法,但是该方法抛出了 NoSuchElementException。Iteratortruenext()

下面是我的代码:

 Collection<TradeStock> restBuy=em.createQuery("select t from TradeStock ...t.getResultList();

if(!restBuy.isEmpty())
{
    Iterator itrest=restBuy.iterator();
    while(itrest.hasNext())
    {
        TradeStock ts=(TradeStock)itrest.next();
        x+=ts.getTradeExecutedQuantity();
    }
}

我怎么了?

4

2 回答 2

2

当您说“调试我的代码”时,您的意思是使用调试器进行调试,就像在 Eclipse 中一样?
如果您的评估表达式( Eclipse 中的Expressions选项卡)包含itrest.next(),则调试器会调用next()方法并修改 Iterator 的状态,而您的代码不会意识到它。
尝试在不评估itrest.next()或使用日志消息的情况下进行调试

于 2012-06-11T05:38:17.927 回答
1

当我重新启动服务器并重新部署我的应用程序时代码工作,所以我猜代码没有错,我无法理解 glassfish 的这种奇怪行为!

于 2012-06-11T05:58:31.740 回答