В PHP есть функция var_dump (), которая выводит внутреннее содержимое объекта, показывая тип и содержимое объекта.
Например:
class Person {
private $firstName;
private $lastName;
public function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$person = new Person('Jon', 'Smith');
var_dump($person);
выведет:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Какой эквивалент в Java будет делать то же самое?
Ответы:
Это не так встроено в Java, поэтому вы не получите это бесплатно. Это делается с помощью соглашений, а не языковых конструкций. Во всех классах передачи данных (и, возможно, даже во всех классах, которые вы пишете ... ), вы должны реализовать разумный
toString
метод. Итак, здесь вам нужно переопределитьtoString()
в своемPerson
классе и вернуть желаемое состояние.Есть утилиты , помогающие написать хороший метод toString, или в большинстве IDE есть
toString()
ярлык для автоматической записи.источник
По моему опыту, var_dump обычно используется для отладки PHP вместо пошагового отладчика. В Java вы, конечно, можете использовать отладчик вашей IDE, чтобы увидеть визуальное представление содержимого объекта.
источник
Ваши альтернативы - переопределить
toString()
метод вашего объекта для вывода его содержимого так, как вам нравится, или использовать отражение для проверки объекта (аналогично тому, как это делают отладчики).Преимущество использования отражения состоит в том, что вам не нужно изменять ваши отдельные объекты, чтобы они были «анализируемыми», но это добавляет сложности, и если вам нужна поддержка вложенных объектов, вам придется это написать.
Этот код перечислит поля и их значения для символа
Object
«o».источник
Я думаю, что лучший способ сделать это - использовать google-gson (библиотека Java для преобразования JSON в объекты Java и наоборот)
Загрузите его, добавьте в свой проект файл "jar"
Вывод:
Вы можете преобразовать любой объект (массивы, списки и т. Д.) В JSON. Я считаю, что это лучший аналог PHP var_dump ()
источник
Пакет apache commons lang предоставляет такой класс, который можно использовать для создания метода toString () по умолчанию с использованием отражения для получения значений полей. Вы только посмотрите на это .
источник
Я использую Jestr с разумными результатами.
источник
Мне нравится использовать GSON, потому что это часто уже зависит от типа проектов, над которыми я работаю:
Или замените GSON на любую другую используемую вами библиотеку JSON.
источник
Я нашел этот метод для дампа объекта, попробуйте этот дамп String (объект объекта)
источник
Вы выполняете сериализацию XML, и вы должны получить очень четкое представление даже для глубоко вложенных объектов.
источник
Я думаю, что нечто подобное вы могли бы сделать, это создать простой метод, который печатает объект, который вы хотите увидеть. Что-то вроде этого:
Это не то же самое, что var_dump (), но вы можете получить общее представление о нем без необходимости переходить в IDE отладчика.
источник
Просто добавьте в решение Field (setAccessible), чтобы вы могли получить доступ к частной переменной объекта:
источник