我有一堂课。在这个类中,我声明了一个私有变量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