Der Fehler kommt von dieser Zeile BoardState addme = new BoardState();nicht statische Variable, auf die nicht von einem statischen Kontext aus verwiesen werden kann
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.
Wenn Sie durch die Stackoverflow-Datensätze schauen, kommt dieser Fehler normalerweise von einer nicht statischen Methode, die normalerweise gelöst wird, indem Sie die Methode statisch machen oder die Methode vollständig umgehen. T
Der folgende Code soll aufzeigen, was vor und nach dieser Aussage passiert.
public class IntelligentTicTacToe extends TicTacToe {
public class BoardState{
public String TTTState;
public int[][] defensiveOppsArray;
public int[][] offensiveOppsArray;
public String str;
public int cnt;
}
public static ArrayList<BoardState> memory = new ArrayList<BoardState>();
public static boolean makeMove(){
char[] oArray = new char[TicTacToeArray.length];
int[][] defensiveOppsArray = new int[TicTacToeArray.length][TicTacToeArray.length];
int[][] offensiveOppsArray = new int[TicTacToeArray.length][TicTacToeArray.length];
int[][] sumOppsArray = new int[TicTacToeArray.length][TicTacToeArray.length];
//converts our Array into a String
String x = convertTTTArrayToString();
//Goes through the conditions to see if we have it in memory or if we must go through all the conditions
boolean matchFound = false;
for(int i=0; i < memory.size(); i++){
BoardState element = memory.get(i);
if(element.str.equals(x)){
System.out.println("Match Found");
matchFound = true;
}}
if(!matchFound){
BoardState addme = new BoardState();
addme.str = x;
addme.cnt = 1;
memory.add(addme);
}
} ....
mögliches Duplikat von [nicht-statische Variable kann nicht aus einem statischen Kontext referenziert werden] (http://stackoverflow.com/questions/2559527/non-static-variable-cannot-be-referenced-from-a-static- Kontext) – EJP