«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как дополнительный тип Java может упростить обработку нулей в цепочках вызовов «Get»?

Как дополнительный тип Java может упростить обработку нулей в цепочках вызовов «Get»?

Опубликовано 8 ноября 2024 г.
Просматривать:383

How Can Java\'s Optional Type Simplify Handling Nulls in Chains of \

Безопасное перемещение по цепочкам вызовов «Get» с необязательными

В программировании на Java часто встречаются цепочки вызовов «Get», например следующие:

house.getFloor(0).getWall(WEST).getDoor().getDoorknob();

Чтобы избежать потенциальных исключений NullPointerException, разработчики часто прибегают к подробной проверке значений NULL:

if (house != null &&& house.getFloor(0) &&& house.getFloor(0).getWall(WEST) != null &&& house.getFloor(0).getWall(WEST).getDoor() != null) ...

Этот подход становится еще более громоздким при использовании более длинных цепочек вызовов. Есть ли более элегантное решение?

Да, с появлением в Java 8 типа «Необязательный» обработка значений NULL в цепочках get стала значительно проще.

Использование параметра «Необязательный» для обработки значений NULL

Optional — это класс-оболочка, представляющий необязательное значение. Он может либо содержать ненулевое значение, либо быть пустым.

Чтобы использовать необязательный параметр для обработки значений NULL в цепочках получения, мы можем использовать его возможности создания цепочек с помощью метода map().

Рассмотрите следующий пример:

Optional.ofNullable(house)
        .map(house -> house.getFloor(0))
        .map(floorZero -> floorZero.getWall(WEST))
        .map(wallWest -> wallWest.getDoor())
        .map(door -> wallWest.getDoor());

Этот код создает цепочку дополнительных объектов, каждый из которых представляет результат соответствующего вызова get.

Преимущества использования Необязательный

Использование необязательного параметра дает несколько преимуществ:

  • Проверки на нулевые значения обрабатываются автоматически: Необязательный автоматически обрабатывает проверки на нулевые значения, устраняя необходимость в явных проверках на нулевые значения в ваш код.
  • Безопасные вызовы Get: Если какой-либо из вызовов get возвращает значение null, соответствующий необязательный параметр будет пустым, что предотвращает возникновение исключений NullPointerException.
  • Fluent API: Возможности создания цепочек в Необязательном обеспечивают краткий и читаемый способ обработки нулевых значений в цепочках получения.

Заключение

Если вы не можете избежать Нарушая Закон Деметры, использование Необязательного является настоятельно рекомендуемым подходом для безопасной навигации по цепочкам вызовов «get». Он обеспечивает элегантный и эффективный способ обработки нулей, обеспечивая надежность вашего кода.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3