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