Java | Фишки и трюки
前往频道在 Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
显示更多6 821
订阅者
-524 小时
-17 天
-5330 天
帖子存档
6 818
🚩 Double braces инициализация - это создание и инициализация объекта в одном java выражении. Чаще всего используется с коллекциями.
На самом деле в этот момент происходит создание ананимного внутреннего класса, расширяющего ArrayList и определение в нём блока инициализации экземпляра.
Плюсы: код выглядит проще, красивее и понятнее.
Минусы:
📍 малоизвестный способ инициализации
📍 каждый раз создается дополнительный класс
📍 не работает, если класс, который мы пытаемся расширить, помечен как final
📍 содержит скрытую ссылку на внешний экземпляр, что может привести к утечкам памяти
Именно из за этих минусов данная инициализация является антипаттерном.
В современных версиях java есть более красивые и правильные варианты создания и инициализации коллекций.
Начиная с Java 8 это Stream API, а начиная с java 9 конструкция List.of().
6 818
🚀 Stream API появился в Java 8 и существенно упростил работу с коллекциями. Теперь можно писать короче и красивее фильтрацию, сортировку и обработку данных.
В карусели приведены полезные примеры использования стримов.
6 818
🔥Пожалуй самый распространенный способ избежания Null Pointer Exception в вашем приложении.
Часто можно получить
NPE при проверке на равенство переменной и константы. Дело в том, что переменная может содержать null и при вызове метода equals у такой переменной, мы получим исключение NullPointerException.
Решение это всегда менять местами переменную и константу. То есть вызвать метод equals у константы.