避免IntelliJ评估惰性列表

时间:2018-11-20 20:15:47

标签: java debugging intellij-idea

我已经实现了java.util.List<T>的实现,它懒惰地计算了其元素。

它工作正常,除了当我使用IntelliJ调试代码时,它开始评估整个列表。 IntelliJ调试器设置为仅显示列表的前100个元素,但是调试器仍然会评估整个列表。

我可以更改IntelliJ设置,添加批注,从其他类派生还是通过其他方式更改此行为?

这里是一个更简单的类,用于演示问题:

public class LazyList extends AbstractList<Integer> {
    @Override
    public Integer get(int index) {
        // If I place a breakpoint on the next line, IntelliJ starts evaluating 
        // the entire list.
        if (index > 10000) {
            System.out.println("Calling slow method");
            return 1;
        }
        return 0;
    }

    @Override
    public int size() {
        return 100000;
    }

    public static void main(String[] args) {
        LazyList list = new LazyList();
        System.out.println(list.get(100));
    }
}

1 个答案:

答案 0 :(得分:1)

您可以在文件->设置->构建,执行,部署->调试器->在“变量”视图中启用自动表达,取消选中该复选框。