Как в Java узнать о доступных полях и методах (аналог dir в Python)?
Я являюсь разработчиком на Python, но недавно начал изучать Java. Многие привычные (и очень удобные) моменты для Python в языке Java отсутствуют. Например, при разработке, я часто применяю функцию dir, которая дает мне небольшой обзор объекта. Вопрос: можно ли это (или что-то похожее) сделать в Java и как?
В джаве нет repl'a, так что либо ты хочешь это в дебаге, либо до компиляции. В любом дебаггере есть возможность посмотреть, что внутри объектов. А до компиляции - смотреть исходники и доки. IDE это позволяют делать очень легко.
abbrakadabbra, Статическая типизация же - никаких сюрпризов в объектах нет, что в классе описали (и наследниках), то и может быть. Если надо узнать содержимое и класс самого объекта в runtime, то debug прекрасен. Какие методы есть в объекте, IDEA подскажет на лету, а можете сами в исходник класса посмотреть. При всём при этом необходимость во вставке каких-то дополнительных инструкций (типо dir) для логгирования объетка просто отсутствует. Ну вы можете распечатывать или логгировать объект при желании (но для этого нужно нормально перегрузить toString), чтобы посмотреть значения полей в runtime, проще использовать debug и в чужой код эти принты не вставить. В ответе про это и написали, больше тут и не скажешь - пользуйтесь IDE, она такая мощная для вашего удобства - go to definition, code completion, просмотр структуры класса и проч