這裏的對象的初始化的摘錄:有時會拋出NullPointerException,有時不會。怎麼修?
...
Rectangle b1 = tenBullets.getBounds();
...
這裏的getBounds()方法:
public Rectangle getBounds() {
return new Rectangle(x, y, 200, 25);
}
這裏是控制檯消息:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at test.game.Board.checkCollisions(Board.java:75)
at test.game.Board.actionPerformed(Board.java:53)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(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)
Board.java :75是調用getBounds()方法的時候。有時會拋出異常,第10次中有1次不是。任何修復?
已經看到了它。如果線75'tenBullets.getBounds()''然後是tenBullets'空出於某種原因,wihch我們可以不要猜測,因爲你沒有顯示相關代碼(=你初始化該變量的位置)。 – assylias 2012-08-16 10:31:22
你可以檢查tenBullets的值,可能使用某種記錄器 – MadProgrammer 2012-08-16 10:33:10
@ user1496383任何其他調用之間使用tenBullets和75行之間?任何try/catch塊? – assylias 2012-08-16 10:47:11