![](/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.