java中的ToString()无法生成\ t

-1 java

所以我有一个字符串方法,我想打印一个带有选项卡的Arraylist

public String toString() {
    return plate + "  " + year + "  " + mfg + " " + style + "  " + color + "\\t"; 
}
Run Code Online (Sandbox Code Playgroud)

这是我打电话的地方

System.out.println(resultList.toString());
Run Code Online (Sandbox Code Playgroud)

我得到的结果都在一行中[ ].

Jas*_*n C 5

使用"\t""\\t".后者输出一个字面,\然后是a t.


但是,这有点代码味道.您通常不应该像这样进行输出格式化toString(),对于您的简单用例可能没问题,但是如果您养成习惯,它可能会导致更大的应用程序出现问题和混淆.至少,请将选项卡视为UI的一部分,并将其保持在稍高的级别,例如:

for (Result r : resultList) {
    System.out.println(r + "\t");
}
Run Code Online (Sandbox Code Playgroud)

更好的是,考虑在更高级别进行所有格式化,而不是在toString(),例如:

for (Result r : resultList) {
    System.out.println(r.getPlate() + " " + r.getYear() + " " +
                       r.getMfg() + " " + r.getStyle() + " " +
                       r.getColor() + "\t");
}
Run Code Online (Sandbox Code Playgroud)

你的使用toString()肯定是方便的,可能对你的应用程序有意义,它本身并不是邪恶的,但只要知道你在做什么.通常(但肯定不总是),toString()用于调试,而不是复合对象的格式化.