Открывается через Run → Evaluate Expression или Alt + F8 (Option + F8 на macOS).
🔹 Что это вообще такое
Небольшое окно с полем ввода, в котором можно написать любое Java-выражение и мгновенно получить результат. Код выполняется в контексте текущего фрейма — видны все локальные переменные, this, поля класса.
🔹 Примеры из реальной жизни
▪️ Вызов метода на живом объекте
userService.findById(42L)
Не нужно писать тест — просто вызываете метод и смотрите, что он реально вернёт с текущими данными в БД.
▪️ Проверка сложного условия
order.getItems().stream()
.anyMatch(i -> i.getPrice().compareTo(BigDecimal.ZERO) < 0)
Подозреваете, что в заказе есть товары с отрицательной ценой? Проверяете прямо сейчас, не добавляя логов.
▪️ Изменение переменной на лету
user.setRole(Role.ADMIN)
Хотите проверить, как поведёт себя код с другим значением — меняете стейт прямо в памяти и продолжаете выполнение. Приложение не перезапускается.
▪️ Десериализация или парсинг
objectMapper.writeValueAsString(response)
Получаете красивый JSON из объекта прямо в дебаггере — удобно проверить, что именно уйдёт клиенту.
🔹 Продвинутые трюки
— В окне Evaluate есть переключатель с однострочного режима на Code Fragment — там можно писать многострочный код с переменными, условиями и циклами.
— Результат вычисления отображается как обычная переменная в дереве дебаггера. Можно раскрыть, посмотреть вложенные поля, скопировать значение.
⚠️ Evaluate выполняет код реально — если вызовете метод с side-effect (запись в БД, отправка события), это произойдёт по-настоящему.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#CoreJava