我有一堂課。在這個類中,我聲明瞭一個私有變量private Agent agent;
。在我的課堂我有爲什麼一個物體不可見?
private Thread controller = new Thread() {
...
}
在上述private thread
我打電話getParameter
這是考慮類的私有方法。在getParameter
內我打電話agent
的方法之一。結果我得到了NullPointerException
。因此,我認爲agent
從getParameter
不可見。
這是爲什麼?難道這是因爲getParameter
是在private Thread
?而且,如果是這樣的話,所描述的問題如何解決?
ADDED
我意識到,我需要更加具體。我的代碼被組織這樣的:
public class GameWindow {
...
private Agent agent;
...
private Thread controller = new Thread() {
public void run() {
...
Agent agent = new Agent();
...
parameter = getParameter();
}
}
...
private String getParameter() {
...
agent.someMethod();
...
}
}
加入2- 在GameWindow我:
public void startWindow() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
controller.start();
}
});
}
那麼什麼樣的代碼初始化`GameWindow.agent`? – Anon 2010-11-30 16:36:13
什麼代碼啓動`controller`線程運行? – Anon 2010-11-30 16:36:28
@Anon,我已添加詳細信息。 – Roman 2010-11-30 16:40:39