错误来自此行板状态 addme = 新板状态();
由于某种原因,它所指向的非静态变量是“新”的。我不清楚如何修复这个错误,因为new不应该是一个变量,也不是。
查看stackoverflow记录,该错误通常来自非静态方法,通常通过将该方法设为静态或完全绕过该方法来解决。T
下面的代码是为了引用这个语句前后发生的事情。
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);
}
}……
不要像你正在做的那样嵌套类。没有必要,它所要做的就是要求你在智能TicTacToe实例之上创建一个BoardState对象,即,
BoardState addme = new IntelligentTicTacToe(). new BoardState();
但这不应该是你的课程的要求。
解决方案:将BoardState类放在它所属的位置,在它自己的文件中。或者使BoardState成为枚举,但它应该只包含常量。
它不起作用的原因是,您的类BoardState
是IntelligentTicTacToe
内部的非静态类。这意味着当引用它时,您将引用该类的实例;该实例在静态上下文中不可用。
一种解决方案是将该类声明为:
public static class BoardState {
你可以在这里阅读更多关于内部类的内容。
我是Android编码的n00b,今天我想尝试使用定位服务。 我设置了一个简单的类和一个简单的main,只是为了得到经度和纬度。 但当我尝试调用retrive的构造时,long and latitude Android Studio弹出了一个错误: 错误:(33,16)错误:无法从静态上下文引用非静态变量纬度 这是我的位置班
我编写了以下测试代码: 但会出现以下错误: 我如何让我的方法识别我的类变量?
问题内容: 我是Java新手,我正在尝试通过递归函数部署斐波那契跟踪,然后计算运行时间。这是我设法编写的代码: 问题是,当我尝试将其转换为字节码时,出现以下错误: 我想知道是什么问题?! 问题答案: 更改 至 并使该方法静态。 或者,改变 至
原谅我的无知。我是初学者: 为什么下面的代码给我以下编译错误?[line: 16]非静态变量x不能从静态上下文中引用
我在阅读Kathy and Bert SCJP1.6时遇到了以下代码: 虽然是在跟踪变量的主题下,但我无法理解如何在main()方法(static)中引用非静态变量myBar?
我最近开始用Java编码,我有一个关于轮盘赌/挖掘游戏(终端)的问题。 每次尝试使用“bank.amount”购买特定商品时,都会出现以下错误: 这是我的shop.java文件 如果你需要更多的代码(例如,我的主类或银行类),请随时问我!