2013-11-03 54 views
-2

我的主類,這是獲得實例:如何從一個類

private Integer id; 

private String code; 
private static Main instance; 

@Override 
public void onEnable() { 
    saveDefaultConfig(); 
    reload(); 
} 

public void reload() { 
    id = 20; 
    code = "code"; 
} 

public Integer getID() { 
    return id; 
} 

public String getCode() { 
    return code; 
} 

public Main() { 
    instance = this; 
} 

而且我的其他類我嘗試的getID和引用代碼 這是我得到的代碼和ID碼。 重載()方法被調用onEnable(起始)

Main main = new Main(); 
System.out.println(main.getCode()); 

和它返回null。

+1

你在調用'getCode()'之前調用'reload()'嗎?因爲你正在用'reload()'方法初始化它。 –

+0

你介意發佈'onEnable()'和你如何調用它? –

+0

這是一個程序的插件,onEnable在插件啓動時被調用。並在getCode()之前調用reload() – user2834628

回答

0

該問題源於您未設置變量的事實。我假設你想要重裝被調用,所以你可能只是想繼續前進,建立一個調用加載這樣的構造:

public Main() 
{ 
    reload(); 
} 
+0

當插件啓動時,不會調用reload()。 – user2834628

+0

我在代碼中沒有看到任何地方......你是否把它稱爲你沒有發佈的地方? – Padawan

+0

好吧我改變了,OnEnabled方法在插件啓動時被調用 – user2834628

1

實例變量初始化爲默認值 - 0 intfalseboolean等。對象引用被初始化爲null

因此,在您的示例中,String參考code初始化爲null。打印出來之前,你從不做任何改變。這就是爲什麼你看到一個'null'。

我喜歡你如何開始你的問題:「我的主要課程是這樣的。」這就像在Yoda看到Stack Overflow的帖子。

+0

我添加了onEnable方法,它在插件啓動時調用,reload()方法設置代碼和ID。 btw whos尤達? – user2834628