non statique de la variable ne peut pas être référencé à partir d'un contexte statique
L'erreur vient de cette ligne
BoardState addme = new BoardState();
Pour une raison quelconque, le non-statique de la variable qu'elle est orientée à l'est "nouveau". Je ne sais pas comment je peux corriger cette erreur que la nouvelle n'est pas destiné à être une variable, et ne l'est pas.
À la recherche par le biais de la stackoverflow enregistrements de cette erreur survient généralement à partir d'un non-statique méthode qui est généralement résolu en faisant la méthode statique ou en contournant la méthode entièrement. T
Ce code ci-dessous est pour faire référence à ce qui se passe avant et après cette déclaration.
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);
}
}....
double possible de non-statique de la variable ne peut pas être référencé à partir d'un contexte statique
OriginalL'auteur John Smith | 2013-04-12
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle cela ne fonctionne pas c'est parce que votre classe
BoardState
est intérieure, non-statique, classe à l'intérieur deIntelligentTicTacToe
. Cela signifie que lorsque l'on se réfère à elle, vous serez en faisant référence à une instance de la classe; l'instance n'est pas disponible à partir d'un contexte statique.La seule solution est de déclarer que les classe comme:
Vous pouvez en lire plus sur les classes internes ici.
OriginalL'auteur Alex Yarmula
Ne pas imbriquer les classes que vous êtes en train de faire. Il n'y a pas besoin, et tout ce qu'il va faire est de vous demander de créer un BoardState objet sur un IntelligentTicTacToe exemple, c'est à dire,
mais cela ne devrait pas être une exigence de votre programme.
Solution: Mettre la BoardState classe où il appartient, dans son propre fichier.
Ou faire BoardState un enum, mais il devrait contenir uniquement des constantes.
static
.Pourrait le faire aussi. Ou mieux, faire un enum, alors il est automatiquement statique.
va essayer vos solutions maintenant
OriginalL'auteur Hovercraft Full Of Eels