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%} ....
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.
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.
Tags und Links java static non-static