public class ObjQueue<E> extends Vector<E>
{...}

ObjQueue<Customer>[] line=new ObjQueue[numServices];
...
if(line[waitingLine].isEmpty()) --emptyLines;


NullPointerException代表if(line[waitingLine].isEmpty()) --emptyLines;怎么了?

最佳答案

这个:

new objQueue[numServices];


创建一个其所有元素都设置为null的数组-而不是空队列的数组。所以这:

line[waitingLine].isEmpty()


除非您已经以某种方式显式初始化了isEmpty()的元素,否则它将在null上调用line

您可能想遵循以下步骤:

objQueue<Customer> [] line=new objQueue[numServices];


有了这个:

for(int i = 0; i < numServices; ++i)
    line[i] = new objQueue<Customer>();


将每个元素初始化为一个新的不同队列。

关于java - NullPointerException for if(line [waitingLine] .isEmpty())--emptyLines;,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9723228/

10-09 13:07