【发布时间】:2025-12-24 10:40:11
【问题描述】:
我正在开发基于 SWT 的 GUI 应用程序。我有一个私有的对象变量。 此变量在应用程序运行时的某个时间变为空。我想知道如何设置看门狗类型的调试,以便我知道哪个线程使其为空。
【问题讨论】:
-
您使用的是什么 IDE/编辑器?
我正在开发基于 SWT 的 GUI 应用程序。我有一个私有的对象变量。 此变量在应用程序运行时的某个时间变为空。我想知道如何设置看门狗类型的调试,以便我知道哪个线程使其为空。
【问题讨论】:
最简单且独立于 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.我认为您在谈论某种类型的对象的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;
}
}
【讨论】:
我想你正在使用 Eclipse 来调试你的应用程序。
对于 Eclipse,您可以设置断点进行访问和修改,这里是快速步骤:
你应该可以看到变量的修改。
【讨论】: