package ttt2;
import java.util.Scanner;
public class TTT2 {
public class State{
int[][] sheet;
int childCount;
public void initialize(int n,int[][] lastState,int level){
sheet=new int[n][n];
childCount=n*n-1;
State[] nextState=new State[childCount];
nextState[0].initialize(n,sheet,level+1);
int turn=level%2+1;
}
}
public static void main(String[] args) {
System.out.print("Enter the size(n) of the sheet(n*n):");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[][] matrix=new int[n][n];
State s=new State();
}
}
无论我怎么努力,我都会遇到这个问题。我尽了我所能。声明State类的对象时,显示错误“非静态变量,无法从静态上下文引用”
没有State
类的封闭实例。要么创建TTT2
的外部实例,要么将State
声明为静态
State state = new TTT2().new State();
虽然我没有得到指定的异常,但它显示(在日食中)
不能访问TTT2类型的封闭实例。必须使用TTT2类型的封闭实例限定分配(例如x.newA(),其中x是TTT2的实例)。
和
State s=new TTT2().new State();
这是创建innerclass对象创建的正确方法。
这是因为非静态内部类需要实例化封闭类的实例,而您正试图从静态上下文中执行此操作:
public class TTT2 {
public class State{ // <- non-static
}
public static void main(String[] args) {
State s=new State(); // <- static context
}
}
您有两个选择。一是也使内部类静态
,因此它不再需要封闭的类实例:
public class TTT2 {
public static class State{ // <- static
}
public static void main(String[] args) {
State s=new State(); // <- no problem
}
}
另一种是实例化一个新的TTT2
用作封闭实例,缺点是您创建了一个可能不会用于其他任何东西的TTT2
(至少在您的示例中):
public class TTT2 {
public class State{ // <- non-static
}
public static void main(String[] args) {
State s=new TTT2().new State(); // <- no problem
}
}
问题内容: 以下代码在变量上产生了错误,con2说 我用Google搜索解决方案,并且他们暗示尚未初始化该变量以使方法可用。我初始化不正确吗?我也尝试过将事情改为公开,但这也无济于事。 问题答案: 不,实际上,你必须声明con2字段为静态: 编辑:更正,实际上是远远不够的,你将遇到相同的问题,因为getConnection2Url方法也不是静态的。更好的解决方案可能是改为进行以下更改:
我是Android编码的n00b,今天我想尝试使用定位服务。 我设置了一个简单的类和一个简单的main,只是为了得到经度和纬度。 但当我尝试调用retrive的构造时,long and latitude Android Studio弹出了一个错误: 错误:(33,16)错误:无法从静态上下文引用非静态变量纬度 这是我的位置班
我编写了以下测试代码: 但会出现以下错误: 我如何让我的方法识别我的类变量?
可能重复: 不能从静态上下文(java)引用非静态变量 即使在这种情况下,我们也试图从静态方法访问非静态类。但这不会给出任何错误。为什么?
问题内容: 我是Java新手,我正在尝试通过递归函数部署斐波那契跟踪,然后计算运行时间。这是我设法编写的代码: 问题是,当我尝试将其转换为字节码时,出现以下错误: 我想知道是什么问题?! 问题答案: 更改 至 并使该方法静态。 或者,改变 至
错误来自此行板状态 addme = 新板状态(); 由于某种原因,它所指向的非静态变量是“新”的。我不清楚如何修复这个错误,因为new不应该是一个变量,也不是。 查看stackoverflow记录,该错误通常来自非静态方法,通常通过将该方法设为静态或完全绕过该方法来解决。T 下面的代码是为了引用这个语句前后发生的事情。 }……