![](/img/trans.png)
[英]java: Trying to add to an object list and getting nullPointerException
[英]Java: NullPointerException when trying to add object to BlockingQueue?
我发现了一个关于PriorityQueue的类似问题,该错误是未正确初始化。 我可能有同样的问题,但是我不知道如何正确初始化它!
到目前为止,我只是这样做:
BlockingQueue myQueue = null;
但这会在我尝试向列表中添加内容时引发异常。
如何正确初始化BlockingQueue?
BlockingQueue<E>
是一个接口。 您需要选择该接口的特定实现,例如ArrayBlockingQueue<E>
,并按如下所示调用其构造函数之一:
BlockingQueue<E> myQueue = new ArrayBlockingQueue<E>(20);
如果不确定JDK中存在哪些不同类型的阻塞队列,请查看“所有已知的实现类”下的内容 。
如果在null上调用任何方法,则将获得null指针异常。 尝试制作一个新的ArrayBlockingQueue来实现该接口。
请阅读javadocs,其中也包含示例http://download.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html
BlockingQueueblockingQueue =新的ArrayBlockingQueue(100); //还有其他实现,尤其是使用链表并且比数组更好地扩展。
BlockingQueue
保持某种类型,例如BlockingQueue<String>
或类似的东西。 BlockingQueue
的实现来初始化变量,例如ArrayBlockingQueue<E>
。 因此,请执行以下操作:
BlockingQueue<MyObject> = new ArrayBlockingQueue<MyObject>();
你会没事的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.