我已经实现了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));
}
}
答案 0 :(得分:1)
您可以在文件->设置->构建,执行,部署->调试器->在“变量”视图中启用自动表达,取消选中该复选框。