我正在研究基于SWT的GUI应用程序。我有一个私有的对象变量。 此变量在应用程序运行时的某个时间变为null。我想知道如何设置看门狗类调试,以便我将知道哪个线程使其为空。
答案 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,您可以设置访问和修改的断点,以下是快速步骤:
您应该能够观察变量的修改。