2012-09-21 41 views
6

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

让我们以Person s(每个具有address属性,其中每个属性具有city属性)的列表为例。在调试器中,我可以查看每个元素或查看list.get(i).address.city

对于大型结构这样做并不是很有帮助。是否有可能将函数应用于数据结构,类似于Perl中的map函数(在调试器中不在代码中)。

输入将是我的清单,我感兴趣的(Person.address.city)的路径,输出只选定元素的列表(城市与我的示例清单)。

在Perl:

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

编辑

我能够产生一个详细格式化一个String

StringBuilder sb = new StringBuilder(); 
for (Person p : this) { 
    sb.append(p.address.city()); 
    sb.append(", "); 
} 
return sb.toString(); 

这将格式化我的名单只用我感兴趣的元素(作为String)。

虽然它朝着正确的方向发展,但如果我能返回一个新的List,那我就可以用调试器进行分析了。

回答

3

我认为,您感兴趣的Eclipse调试器功能称为逻辑结构。您可以定义在Eclipse首选项(Java /调试/逻辑结构),在那里你可以写这样的表达(希望),然后在变量查看您可以取代在弹出的菜单列表中显示的逻辑结构。

见本博客文章的基本思路:http://www.javalobby.org/forums/thread.jspa?threadID=16736&messageID=91823528

2

显示视图提供了在每个断点执行自定义代码的能力。只需在断点处读出数据结构并将其打印输出到控制台即可。