Довольно распечатать иерархию объектов в Java?
Я работаю над проектом по анализу данных, в котором мы представляем множество основных сущностей, которые вы можете найти в языке. Я хотел бы найти лучший способ распечатать их графы объектов, хотя для целей отладки. Так, например, мы могли бы иметь:
Function: Average
Description: some description
Overload #1:
parameter-set: paramset-a
columns:
currency: string
value: double
scale: integer
result-set: result-set-a
preference: first-find
Overload #2: ...
Overload #3: ...
Мой вопрос
Допустим, в приведенном выше примере, Function
мой корневой объект. Функция имеет несколько атрибутов и ряд перегрузок, каждый со своими атрибутами и дочерними объектами.
Есть ли библиотека, которая может помочь мне распечатать график объекта в корневой функции в хорошо отформатированном виде?
PS: приведенный выше пример является относительно тривиальным; во многих из наших случаев иерархии объектов имеют глубину 6-10 уровней, и именно тогда возникает настоящая проблема.
0 ответов
Это далеко не идеально, но этот вопрос действительно заслуживает ответа.
https://github.com/EsotericSoftware/jsonbeans это один из способов рода сделать что - то вроде этого. Он преобразует произвольные объекты Java (без необходимости аннотировать поля или что-либо еще) в JSON и включает метод красивой печати. Он может делать примерно то, о чем вы просите.
Используя эту библиотеку, вы можете сделать что-то вроде этого:
Json json = new Json();
System.out.println(json.prettyPrint(person));
Для некоторых примерных данных результат может выглядеть следующим образом:
{
"name": "Nate",
"age": 31,
"numbers": [
{
"name": "Home",
"class": "com.example.PhoneNumber",
"number": "206-555-1234"
},
{
"name": "Work",
"class": "com.example.PhoneNumber",
"number": "425-555-4321"
}
]
}