我想在Eclipse调试器中分析一些集合。我对每个元素的特定属性感兴趣。

让我们以Person列表为例(每个都有address属性,而city属性又具有list.get(i).address.city属性)。在调试器中,我可以查看每个元素,也可以查看map

对大型结构执行此操作实际上并没有帮助。是否可以将函数应用于数据结构,类似于Perl中的String函数(在调试器中不在代码中)。

输入将是我的列表,其中包含我感兴趣的路径(Person.address.city),输出将是仅包含所选元素的列表(带有我的示例的城市列表)。

在Perl中:

map { $_->{address}->{city} } @list

编辑

我能够使用Detail Formatter生成String:
StringBuilder sb = new StringBuilder();
for (Person p : this) {
    sb.append(p.address.city());
    sb.append(", ");
}
return sb.toString();

这将仅使用我感兴趣的元素来格式化我的列表(作为List)。

尽管它朝着正确的方向发展,但是如果我可以返回一个可以使用调试器进行分析的新ojit_code,那就很好了。

最佳答案

我认为,您感兴趣的Eclipse Debugger功能称为逻辑结构。您可以在Eclipse首选项中定义一个逻辑结构(Java/Debug/Logical结构),在其中可以编写这样的表达式(希望如此),然后在变量 View 中,您可以替换弹出菜单中列表的显示。

有关基本思想,请参见此博客文章:http://www.javalobby.org/forums/thread.jspa?threadID=16736&messageID=91823528

关于Eclipse调试器和集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12527256/

10-13 09:22