На первый взгляд, ветка
default в switch кажется удобным решением для обработки "всего остального". Но на самом деле это может стать источником ошибок. Разберем три подхода: с default, без нее и с выбросом исключения.defaultdefault часто используют для обработки неожиданных случаев. Это позволяет избежать ошибок компиляции, но может скрыть проблемы:switch (type) {
case ADMIN -> handleAdmin();
case USER -> handleUser();
default -> logUnexpectedType();
}Если добавить новое значение, например, GUEST, оно автоматически попадет в default. Это может привести к некорректной работе, если логика в default не подходит для нового значения.
defaultИногда лучший способ избежать проблем — вовсе отказаться от ветки
default. Это особенно полезно, если вы работаете с перечислениями (enum).switch (type) {
case ADMIN -> handleAdmin();
case USER -> handleUser();
}Такой код заставит компилятор проверять, учтены ли все значения. Если вы забудете про новое, программа не соберется, что поможет выявить ошибку на этапе разработки.
Если вы уверены, что ветка
default необходима, используйте ее для выброса исключения:switch (type) {
case ADMIN -> handleAdmin();
case USER -> handleUser();
default -> throw new IllegalArgumentException("Unexpected type: " + type);
}В этом случае, если появится новое значение, программа не выполнит некорректную логику, а остановится с явной ошибкой. Это поможет быстрее найти и устранить проблему.
Подытожим: Ветка
default может скрывать ошибки и усложнять поддержку. Лучше обрабатывать все варианты явно или использовать default только для выброса исключений. Такой подход сделает код безопаснее и надежнее.Please open Telegram to view this post
VIEW IN TELEGRAM
❤44👍13🔥4
Из чего состоит HTTP-запрос?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3🔥3
В предыдущей части автор подробно объяснил, как работать с сериализацией данных в операторах и создать собственный сериализатор с поддержкой эволюции схемы.
В этой статье речь пойдет о том, как написать тесты, которые проверяют эволюцию схемы состояния при использовании собственного сериализатора.
🔖 Предыдущая часть — КЛИК
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Что выведет код сверху?
Anonymous Quiz
5%
3
27%
4
49%
Ошибка компиляции
20%
Ошибка во время выполнения
🤯35👍7❤2
В статье объясняется, как реализовать аутентификацию через Telegram в Spring Boot приложении с использованием Spring Security.
Автор показывает, как настроить авторизацию, создать HTML-форму входа и обеспечить безопасность приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3❤1
Что такое Reflection?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤8⚡7
В статье рассказывается, как на Java разработать полноценную 3D-игру с использованием мощного движка jMonkeyEngine 3.
Автор делится своим опытом, раскрывает особенности работы с движком и публикует готовый исходный код для изучения.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5🔥3👍2
👍14🤯6⚡5
Инверсия управления (IoC) — это принцип ООП, используемый для уменьшения связанности между классами и объектами.
В Java IoC часто реализуется с помощью контейнера внедрения зависимостей (Dependency Injection Container). Он отвечает за создание, настройку и предоставление объектов зависимым классам.
Говоря простым языком, при использовании IoC кодом будет управлять фреймворк, а не программист.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤29🔥5👍4
Что такое livelock?
Ответ:
Реальный пример livelock — когда два человека встречаются в узком коридоре и каждый, пытаясь быть вежливым, отходит в сторону, и так они бесконечно двигаются из стороны в сторону.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤15😁5👍1🔥1
Блог владельца «Java Developer»
Жизнь в Telegram и за его пределами, бизнес на каналах и никакого программирования:
https://news.1rj.ru/str/+ZE-gNjvcEn5mNzdi
Жизнь в Telegram и за его пределами, бизнес на каналах и никакого программирования:
https://news.1rj.ru/str/+ZE-gNjvcEn5mNzdi
1⚡5❤4🔥4
Делимся подборкой вопросов и ответов для подготовки к собеседованию на позицию Java-разработчика: 114 теоретических и практических вопросов с разными уровнями сложности.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥5