我需要打印一个对象,并且该对象内部包含其他对象。所需的输出是这样的多级打印:
[
[
[
]
]
]
我可以从内部类中更改toString方法,但我想避免这种情况,只想到在我的类中使用toString方法。
有什么想法吗?
解:
`
公共字符串toString(){
StringBuilder usina = new StringBuilder();
usina.append("Usina: [\n\t");
for (Turbina turbina : turbinas)
usina.append(turbina.toString().replace("\n", "\n\t"));
usina.append(populacao.toString().replace("\n", "\n\t"));
usina.append("]\n").deleteCharAt(usina.lastIndexOf("\t"));
return usina.toString();
}
`
最佳答案
如果您不介意使用外部库,则可以使用JSON库轻松获得对象的漂亮打印JSON字符串。
例如,使用Gson:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(yourObject);
如果您打算覆盖
toString()
,则可以将\t
用于制表符,将\n
用于换行符。