我正在使用if语句,并且在运行它时会显示异常java.util.NoSuchElementException

代码如下所示

if (BackgroundService.pendingQueue != null) {
                logger.error("Here is clear step next 2 ");

            BackgroundService.pendingQueue.remove();

            logger.error("Here is clear step next 3 ");
        }
        logger.info("BackgroundService.pendingQueue="+BackgroundService.pendingQueue.
size());
        if(BackgroundService.pendingQueue.size() == 0){
            BackgroundService.pendingQueue.clear();
        }
        logger.info("BackgroundService.pendingQueue after task done is ="+BackgroundService.pendingQueue.size());
    }


该示例在BackgroundService.pendingQueue.remove();语句的“清除步骤2”和“清除步骤3”之间显示。
如果您有解决方案,请以该解决方案答复

最佳答案

我可以想象您的对象是一种队列。
如果尝试删除空队列上的对象,则会引发NoSuchElementException异常。

因此,在尝试删除某些内容之前,您需要检查队列是否不为空:

  if(!BackgroundService.pendingQueue.isEmpty()){
    BackgroundService.pendingQueue.remove();
  }

关于java - 使用队列时出现java.util.NoSuchElementException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31802837/

10-10 16:53