предисловие
Начиная с Java 8, мы, как программисты, неотделимы от использования функций, связанных со Stream, что называется плавным письмом (это ощущение~~). Но всегда бывают случаи, когда результаты, которые мы хотим от потоковых операций, не соответствуют нашим ожиданиям, что требует от нас пошаговой отладки, чтобы найти проблему.
Общая отладка
Сначала посмотрите на следующий код:
public static void main(String[] args) {
Object[] res = Stream.of(1,2,3,4,5,6,7,8).filter( i -> i%2 == 0).filter( i -> i>3).toArray();
System.out.println(Arrays.toString(res));
}
Мы можем поставить точку останова на операции Stream и пройтись по результатам следующим образом:
Нам нужны все виды пошаговой отладки, это не очень интуитивно понятно, нам отчаянно нужен краткий обзор, давайте быстро посмотрим наши результаты Stream
Визуальная отладка
Также сначала выберите точку останова строки, чтобыDebug
Процедура входа в режим:
появится следующееStream Trace
, вся работа Stream перед вами
Вы также можете нажать на нижний левыйFlat Mode
кнопка, чтобы сгладить весь вид
В реальном бизнесе мы обычно выполняем различные Stream операции над коллекциями, возьмем более сложный пример:
List<Optional<Customer>> customers = Arrays.asList(
Optional.of(new Customer("日拱一兵", 18)),
Optional.of(new Customer("卑微的小开发", 22)),
Optional.empty(),
Optional.of(new Customer("OOT", 21)),
Optional.empty(),
Optional.of(new Customer("温柔一刀", 23)),
Optional.empty()
);
long numberOf65PlusCustomers = customers
.stream()
.flatMap(c -> c
.map(Stream::of)
.orElseGet(Stream::empty))
.filter(c -> c.getAge() > 18)
.count();
System.out.println(numberOf65PlusCustomers);
Также выполните описанные выше операции, чтобы получить визуальное представление трассировки потока, интуитивно понять весь процесс потока, просмотреть свойства объекта и т. д.
Суммировать
Эту простую функцию можно прочитать один раз. Я считаю, что она может очень помочь вам в ежедневной отладке. Далее я познакомлю вас с более продвинутыми навыками отладки, которые вы не заметили.
Личный блог: https://dayarch.top
Сунь Гун Ибин | Оригинал