Я реализовал реализацию 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));
}
}