这是我的简单课程:
public class Project {
private int size;
private Obj tree;
static Obj insert( Obj t, String s ) { // t is null
t = new Obj();
t.val = s;
return t;
}
public Project()
{
Obj tree = new Obj();
int size=0;
}
public class Obj
{
public String val;
public Obj()
{
val=null;
}
}
}
但是,当我尝试在insert()函数中创建一个新对象时,我收到此错误:
Error: non-static variable this cannot be referenced from a static context
答案 0 :(得分:6)
您的Obj
课程不是static
==这是一个内部课程。这意味着它需要一个封闭类Project
的实例来生存。
从static
方法insert
,没有这样的Project
实例,因此编译错误。
Obj
类似乎不需要Project
中的任何实例变量,因此没有理由将其保持为非static
。在Obj
中制作static
班Project
。
public static class Obj