我有一些我想在Eclipse调试器中分析的集合.我对每个元素的特定属性感兴趣.
让我们以一个Persons 列表为例(每个s都有一个address属性,而该属性又有一个city属性).在调试器中,我可以查看每个元素或查看list.get(i).address.city.
对大型结构这样做并不是很有帮助.是否有可能将函数应用于数据结构,类似于mapPerl中的函数(在调试器中不在代码中).
输入将是我的列表,其中包含我感兴趣的路径(Person.address.city),输出列表中只包含所选元素(带有我的示例的城市列表).
在Perl中:
map { $_->{address}->{city} } @list
Run Code Online (Sandbox Code Playgroud)
编辑
我能够String使用Detail Formatter生成一个:
StringBuilder sb = new StringBuilder();
for (Person p : this) {
sb.append(p.address.city());
sb.append(", ");
}
return sb.toString();
Run Code Online (Sandbox Code Playgroud)
这将使我感兴趣的元素(作为a String)格式化我的列表.
虽然它朝着正确的方向前进,但如果我可以返回一个List我可以使用调试器分析的新内容将会很好.
我认为,您感兴趣的 Eclipse 调试器功能称为逻辑结构。您可以在 Eclipse 首选项(Java/调试/逻辑结构)中定义一个逻辑结构,您可以在其中编写这样的表达式(希望如此),然后在变量视图上您可以替换弹出菜单中列表的显示。
有关基本想法,请参阅此博客文章:http://www.javalobby.org/forums/thread.jspa ?threadID=16736&messageID=91823528