nicht statische Variable, auf die nicht aus einem statischen Kontext verwiesen werden kann

7

Der Fehler kommt von dieser Zeile      BoardState addme = new BoardState ();

Aus irgendeinem Grund ist die nicht-statische Variable, auf die es zeigt, "neu". Ich bin mir nicht sicher, wie ich diesen Fehler beheben kann, da neu keine Variable sein soll und nicht ist.

Beim Durchsehen der Stackoverflow-Datensätze kommt dieser Fehler normalerweise von einer nicht statischen Methode, die normalerweise dadurch gelöst wird, dass die Methode statisch gemacht oder die Methode vollständig umgangen wird. T

Dieser Code soll auf das hinweisen, was vor und nach dieser Aussage passiert.

%Vor%

} ....

    
John Smith 12.04.2013, 02:59
quelle

2 Antworten

17

Der Grund, warum es nicht funktioniert, ist, dass Ihre Klasse BoardState eine innere, nicht-statische Klasse innerhalb von IntelligentTicTacToe ist. Dies bedeutet, dass Sie sich auf eine Instanz der Klasse beziehen, wenn Sie darauf verweisen. Die Instanz ist in einem statischen Kontext nicht verfügbar.

Eine Lösung besteht darin, diese Klasse als

zu deklarieren %Vor%

Sie können mehr über innere Klassen hier lesen.

    
Alex Yarmula 12.04.2013, 03:06
quelle
2

Schulen Sie keine Klassen wie Sie es tun. Es besteht keine Notwendigkeit, und Sie müssen lediglich ein BoardState-Objekt über einer IntelligentTicTacToe-Instanz erstellen, d. H.

%Vor%

Dies sollte jedoch keine Voraussetzung für Ihr Programm sein.

Lösung: Platzieren Sie die BoardState-Klasse in einer eigenen Datei, wo sie hingehört. Oder mach BoardState zu einer Enum, aber dann sollte es nur Konstanten enthalten.

    
Hovercraft Full Of Eels 12.04.2013 03:02
quelle

Tags und Links