0

私は現在、友人と一緒にゲームに取り組んでいますが、ゲームに保存機能を実装することでいくつかの問題が発生しました。しかし、配列から特定の値を取得しようとするたびに NullPointerExceptions が発生し続けます。

SaveGame.java:

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
        }
    }
}

そして、これは私がこのようなものを実行したときに得られるエラーコードです:

> 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)
4

1 に答える 1

1

ボード配列を宣言しましたが、静的メソッド呼び出しで呼び出されないコンストラクターでのみ初期化し、次のように宣言します。

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

また、考慮してください-静的関数呼び出しメソッド「setupGame」中に呼び出されませんが、それは予想されますか?

于 2013-10-16T02:20:05.590 に答える