2013-10-16 4 views
0

지금 친구와 함께 게임을하고 있는데 게임에 저장 기능을 구현하여 문제가 발생했습니다. 하지만 배열에서 특정 값을 가져 오려고 할 때마다 NullPointerExceptions가 계속 발생합니다.java.lang.NullPointerException |

public class SaveGame { 
    static int newValue; 
    //unnecessary stuff hidden... 

    public static void SaveGame() { 
     //The class which uses getTokenPositionList() 
    } 

    //Saves the positioning of the tokens within a String 
    static String getTokenPositionList() { 
     String tokenPositionList = ""; 
     for (int row = 0; row < 10; row++) { 
      for (int col = 0; col < 10; col++) { 
       tokenPositionList = tokenPositionList + KodeKs.KodeKsData.getKodeKsData(row, col); 
      } 
     } 
     return tokenPositionList; 
    } // end getTokenPositionList() 
} 

KodeKs.java :

public class KodeKs extends JPanel { 
    public KodeKs() { 
     //lots of unessecary stuff hidden 
     public static class KodeKsData { 
      public static int[][] board; 
      public KodeKsData() { 
       board = new int[10][10]; 
       setUpGame(); 
      } 
      public static int getKodeKsData(int row, int col) { 
       return board[row][col]; 

      } 
      //more stuff hidden 
     } 
    } 
} 

그리고 이것은이 물건 실행할 때 내가 오류 코드입니다 :

SaveGame.java

> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
>  at KodeKs$KodeKsData.getKodeKsData(KodeKs.java:597)  at 
> SaveGame.getTokenPositionList(SaveGame.java:61)  at 
> SaveGame.SaveGame(SaveGame.java:33)  at 
> KodeKsToolBar$3.actionPerformed(KodeKsToolBar.java:48) 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.dispatchEventImpl(Unknown Source) at 
> java.awt.EventQueue.access$200(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.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown 
> Source)  at java.awt.EventQueue$4.run(Unknown Source) at 
> java.awt.EventQueue$4.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) 
+0

'KodeKsData'에서 어떤 행이 597입니까? –

답변

1

보드 배열을 선언했습니다. b 유타는 정적 메소드 호출에 대해 호출되지 않습니다 생성자에 init을, 그것은 같은 선언

public static int[][] board = new int[10][10];

을 또한 고려 - "setupGame"가 호출되지 않습니다 정적 함수 호출 방법 중에이 예상된다?

+2

정적 초기화를 사용하십시오.'static {board = new int [10] [10]; }' –

+0

@ JeroenVannevel +1, 이것도 작동합니다. –

관련 문제