如何在 Eclipse 的变量视图中禁用逻辑结构的特殊处理?
java.util.Collection
实现或 的类java.util.Map
通过调用相应的方法来呈现
[entrySet().]toArray()
,并以树状结构显示。
相应的首选项页面是,其中和Java -> Debug -> Logical Structures
的定义是预定义的,不能更改或禁用。java.util.Collection
java.util.Map
每当代码在调试模式下进入我的集合类时,它都会立即尝试toArray()
在后台调用(1)(可能是由于变量视图this
中存在节点)。然而,在某些时候,班级还没有做好准备,就会崩溃。
我完全意识到像这样的方法toArray()
应该没有副作用,并且在我当前正在从事的项目中,我可以安全地将它们留空以用于开发阶段(或修改它们,这样它们就不会伤害我),但是我想用“日食方式”来处理这个问题。
因此,如果例如toArray()
需要调试自身的代码,情况会更糟(基本上是不可避免的)。
(1)确认码
@Override
public Object[] toArray() {
new Exception("toArray was called").printStackTrace(System.out);
return super.toArray();
}
Run Code Online (Sandbox Code Playgroud)
然而,生成的堆栈跟踪完全被破坏了;我没有toArray()
在第 45 行调用它Testing
(我什至没有这样的对象引用),但这是我在 EclipsetoArray()
启动时调试的行。
@Override
public Object[] toArray() {
new Exception("toArray was called").printStackTrace(System.out);
return super.toArray();
}
Run Code Online (Sandbox Code Playgroud)