实例变量变为空

时间:2012-08-18 16:51:58

标签: java debugging

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

3 个答案:

答案 0 :(得分:5)

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

当时:

public MyObject obj;

更改为:

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

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

答案 1 :(得分:0)

1。我认为你在谈论Object Reference Variable特定类型的对象。

在其setter方法中检查值。

<强>例如

CustomObject cObject;

public void setObject(CustomObject o){


       if(o.equals(null)){


              // Save it in log, Sysout it... etc.
       }
        else{

              cObject = o;

         }

 }

答案 2 :(得分:0)

我想你正在使用Eclipse来调试你的应用程序。

对于Eclipse,您可以设置访问和修改的断点,以下是快速步骤:

  1. 关注私有变量的行。选择运行菜单 - &gt;切换休息 点。 (如果使用默认键映射,则可以按Ctrl + Shift + B)
  2. 按窗口菜单显示断点视图 - &gt;显示视图 - &gt;其他......断点
  3. 单击您切换的变量,右键单击并取消选中访问选项。仅保留修改。
  4. 以调试模式运行应用程序。
  5. 您应该能够观察变量的修改。