我想在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/