实例变量变为空

jav*_*fan 2 java debugging

我正在研究基于SWT的GUI应用程序.我有一个私有的对象变量.此变量在应用程序运行时的某个时间变为null.我想知道如何设置看门狗类调试,以便我将知道哪个线程使其为空.

das*_*ght 5

最简单且独立于IDE的方法是将变量封装在setter/getter对后面,并在代码中添加一条语句来监视设置值null:

是:

public MyObject obj;
Run Code Online (Sandbox Code Playgroud)

改成:

private MyObject obj;
public MyObject getObj() {
    return obj;
}
public void setObj(MyObject val) {
    if (val == null) {
        // Add a log debug statement, and set a breakpoint here
    }
    obj = val;
}
Run Code Online (Sandbox Code Playgroud)

封装变量通常是一件好事,通常在调试上下文之外也证明是有用的.