Here's my simple class:
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;
}
}
}
However, when I try to create a new object in the insert() function, I get this error:
Error: non-static variable this cannot be referenced from a static context
Your Obj
class is not static
== it's an inner class. This means that it needs an instance of the enclosing class Project
to live.
From the static
method insert
, there is no such Project
instance, hence the compiler error.
The Obj
class doesn't seem to need any instance variables in Project
, so there is no reason to keep it non-static
. Make the Obj
class static
in Project
.
public static class Obj
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With