2010-02-11 71 views
4

我有一个相对复杂的对象,其中包含一个ConcurrentHashMap。在调试器中,我希望看到调用.size()方法的结果,但我实际上并不希望将其用在我的代码中,也不希望将其放入。Java Eclipse调试器获取方法调用结果

Debugger image http://img153.imageshack.us/img153/1695/will.png

上面可以看到我有什么果,但编号爱能够以某种方式调用/看.size()方法的结果

我可以看到但大量文献,以地图和段等,但他们只是价值观。

只是想知道它是否可能?

回答

4

作为替代查看显示屏中运行的size()方法,你可以简单地按你的变量窗口中的“显示逻辑结构”按钮的显示您的地图将更改为像条目数组一样查看。数组的大小就是你的Map的大小。

+0

这实际上更好,谢谢罗宾,感谢Danben我的eclipse ++现在。 – wmitchell 2010-02-11 14:59:18

0

我会使用log4j的,并做一些调试输出:

if (log.isDebugEnabled()) { 
    log.debug("size: " + myConcurrentHashMap.size()); 
} 

这样.size()当你在调试日志级别只叫...

10

在调试器,打开显示视图。这将允许您评估您输入的表达式。

请参阅“剪贴您的实时代码”下的http://www.ibm.com/developerworks/library/os-ecbug/

这里有一个更详细的文章:http://larsho.blogspot.com/2008/07/my-favorite-eclipse-view.html

+0

+1 for Eclipse voodoo ... – 2010-02-11 14:24:32

+2

+1。显示视图是无价的。 – 2010-02-11 14:46:59

+1

+1。感谢这正是我想要的 – wmitchell 2010-02-11 14:57:13