胡子哥哥
我经常使用varargs输出日志以进行调试。几乎我的应用程序中的每个类都有一个方法调试器Print():private void debugPrint(Object... msg) {
for (Object item : msg) System.out.print(item);
System.out.println();}然后,在类的方法中,我有如下调用:debugPrint("for assignment ", hwId, ", student ", studentId, ", question ",
serialNo, ", the grade is ", grade);当我确信我的代码工作正常时,我会注释掉调试器Print()方法中的代码,这样日志就不会包含太多无关和不想要的信息,但是我可以不对每个调用进行注释。稍后,如果我发现了一个bug,我只需取消对调试器Print()代码的注释,而我对调试器Print()的所有调用都会被重新激活。当然,我也可以很容易地避开varargs,做以下事情:private void debugPrint(String msg) {
System.out.println(msg);}debugPrint("for assignment " + hwId + ", student " + studentId + ", question "
+ serialNo + ", the grade is " + grade);但是,在本例中,当我注释出调试器Print()代码时,服务器仍然要经历将每次调用中的所有变量连接到调试器Print()中的麻烦,即使对结果字符串不做任何操作。但是,如果我使用varargs,服务器只需将它们放在一个数组中,它就会意识到它不需要它们。节省了很多时间。