6

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

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

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

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

在 Perl 中:

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

编辑

我能够String使用Detail Formatter生成一个:

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

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

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

4

2 回答 2

3

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

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

于 2012-09-21T09:13:30.943 回答
2

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

于 2012-09-21T09:13:48.563 回答