Старый драйвер IntelliJ IDEA, еще не использовали функцию Stream Trace?

Java

предисловие

Начиная с 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

Сунь Гун Ибин | Оригинал