2015-03-18 37 views
4

這裏是我的簡單的類引用:的Java不能從靜態上下文

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; 
     } 
    }  
} 

然而,當我嘗試插入()函數來創建新的對象,我得到這個錯誤:

Error: non-static variable this cannot be referenced from a static context 

回答

6

你的Obj類不是static ==這是一個內部類。這意味着它需要一個封閉類Project的實例來生活。

static方法insert,沒有這樣Project實例,因此編譯器錯誤。

Obj類似乎不需要Project中的任何實例變量,所以沒有理由保持它不爲static。在Project中製作Objstatic

public static class Obj 
+0

啊哈,非常感謝。我會盡可能標記你的答案。 – Firkamon 2015-03-18 23:58:31

相關問題