我需要打印一个对象,并且该对象内部包含其他对象。所需的输出是这样的多级打印:

[
    [
      [
      ]
    ]
]


我可以从内部类中更改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用于换行符。

09-26 09:27