记录大量字段值的最简洁方法是什么?例如,假设您有6个字段要输出给定行的所有int类型的值。
最明显的解决方案是做这样的事情:
System.out.println("renderMap() xTile: " + xTile + " yTile: " + yTile +
" maxXTile: " + maxXTile + " maxYTile: " + maxYTile + " xPixelOffset: " +
xPixelOffset + " yPixelOffset: " + yPixelOffset);
如果您正在进行大量的更改,并且一直要求您编写上述调试行,那么是否有更简洁且少痛苦的方法在Java中执行此操作?
我接受我上面所做的可能只是最简洁的语法,但对此的确认(或反驳)会很好。
我最终将此作为一种解决方案(比我上面的要求略低,但我会接受它):
System.out.println(String.format("%d %d %d %d %d %d", xTile, yTile,
maxXTile, maxYTile, xPixelOffset, yPixelOffset));
答案 0 :(得分:0)
创建一个格式字符串并使用String.format(formatstring,object.value1,object.value2,...)。这并不简单,但它看起来更整洁,因为不是变量和字符串的结构混合在一起,你完全描述你想要的格式,然后完全是你将要放在其中的值。如果您曾在C中使用过printf,那就非常相似了。
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#format(java.util.Locale,java.lang.String,java.lang.Object ...)
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax
这不适用于Java(除非你可以使用Reflection做一个技巧?)但是在像Python这样的语言中,所有对象秘密地都有值变量名的哈希映射,你可以迭代这个hashmap并自动构建一个调试所有变量名和值的字符串。