3

以下代码片段是 Spring MVC 控制器的一部分。使用 commons-collections,它遍历 County 对象列表并将其转换为 String[] 列表以返回给客户端。使用“searchTerm”变量中的值来查找数据。我经常遇到的问题是,一个特定的搜索词会导致转换器抛出异常,因为 County .getState() 方法似乎返回 null。所以我想知道如果使用 IntelliJ 的调试器,我可以告诉它不断迭代直到变量为空。断点导致我手动跳过每个迭代,但是对于大量集合,这可能需要一段时间。

谢谢。

public List<String[]> cityLookup(@PathVariable String searchTerm) {
    List<County> counties = countyService.findAllByPartialCity(searchTerm);

    return new ArrayList<String[]>(CollectionUtils.collect(counties, new Transformer() {
        @Override
        public Object transform(Object o) {
            return new String[]{((County) o).getId().getCity(), ((County) o).getState().getStateCode()};
        }
    }));
}
4

2 回答 2

4

在断点对话框中应该有一个条件选项。

http://jetbrains.dzone.com/tips/set-conditional-breakpoints-id

于 2013-05-03T12:52:55.497 回答
1

不,你不能按照你的建议去做。

我建议您将该返回行分成两行:一个用于获取值,另一个用于构造要返回的数组。

您可以将断点放在返回行并在构造它之前检查值。

于 2013-05-03T12:52:42.993 回答