Java Portal | Программирование
11.7K subscribers
1.55K photos
117 videos
45 files
1.61K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Java: Глубокие цепочки вроде user → address → city — классическая ловушка для NullPointerException. Вложенные проверки if (x != null) быстро разрастаются, и легко пропустить один из уровней.

Optional:
findByEmail(email)
.map(User::getAddress)
.map(Address::getCity)
.orElse("unknown");


Если Optional в API нет, достаточно одной проверки:
if (user == null || user.getAddress() == null)


Такой подход читается лучше, чем множество разбросанных null-проверок, из-за которых сложно понять, какое именно значение может отсутствовать.
#Java #NullSafety

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Java Streams: limit(n) превращает бесконечный поток в конечный.

Полезно при работе со Stream.iterate() / generate() — они могут создавать бесконечные потоки
limit(5) означает: «взять первые 5 элементов и остановиться»
Отлично подходит для выборки данных или получения первых N значений

#Java #Streams

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7
💡 Java I/O: используйте Files.copy(), чтобы скопировать файл одной строкой.

Отлично подходит для резервных копий: data.csvdata.csv.bak
Используйте REPLACE_EXISTING, если целевой файл уже может существовать
Работает с Path, поэтому код переносим между разными ОС

#Java #Files

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
💡 Используйте Optional.orElseThrow(), когда отсутствие значения — это ошибка.

orElse(null)NPE возникает позже, далеко от места поиска значения
orElseThrow() останавливает выполнение в месте возникновения проблемы и выбрасывает понятное исключение
Передавайте Supplier, чтобы в сообщении было указано, какое именно значение отсутствует

#Java #Optional

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Для null-safe проверки равенства лучше использовать Objects.equals(a, b).

a.equals(b) выбросит NullPointerException, если a равен null
Objects.equals корректно обрабатывает null с обеих сторон
Оба значения nulltrue; одно значение nullfalse; иначе вызывается a.equals(b)

#Java #Objects

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤣1
Используйте Comparator.nullsFirst() или Comparator.nullsLast(), если ключи сортировки могут быть null.

comparing(User::getName) выбросит NullPointerException, если getName() вернёт null.
Оберните компаратор в nullsFirst() или nullsLast(), чтобы явно задать порядок для null.
Для сортировки по нескольким полям добавляйте thenComparing().

#Java #Comparator

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2