2010-12-15 3 views
0
object = new Object(int something); 
for(int i=0;i<5;i++) { 
    //obj=queue.element(); 
    obj=queue.remove(); 
    object=obj.runTasks(int somethingElse); 
    queue.offer(obj); 
    //queue.remove(); 
} 

Я в основном пытаюсь использовать методы объекта первого в очереди, а затем положить его в конце очереди, и использовать следующий объект, и положить что один последний в очереди и т.д.Использование методов в объектах в очереди, Java

линия object=obj.runTasks(int...) заставляет программу прекратить, с большим количеством предупреждений, например, «исключение в потоке„АВТ-EventQueue-0“

Также эти:.

 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at projekt.Modell.körSaker(Modell.java:110) 
    at projekt.Controller$CloseListener.actionPerformed(Controller.java:84) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 

У кого-нибудь есть решение? Спасибо!

+1

Код, который вы вставили, даже не компилируется. Что такое `Object`. Что находится в строке 84 Controller.java. – Bozho 2010-12-15 17:47:15

ответ

0

Я, наконец, решил. Я заполнял очередь нулевыми объектами и некоторыми ненулевыми объектами, что затрудняло реализацию.

1

Утверждения могут помочь отладить эту проблему. Если вы ожидаете, все элементы в очереди, чтобы быть пустыми, а затем рассмотреть вопрос об использовании такого кода:

obj=queue.remove(); 
assert(obj != null); 
object=obj.runTasks(int somethingElse); 

Если потянуть нулевой объект из очереди, которая является неожиданной, программа будет умирать на утверждаете. Причина проблемы часто намного яснее, когда утверждения существуют.

Вам нужно будет работать с -ea для включения утверждений. См. http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html

Смежные вопросы