Java PrintWriter
方法printf
和format
之间有什么区别吗?
文档说printf
是一种方便的方法,但如果它的行为与format
完全相同,那么我不明白它的方便之处。
答案 0 :(得分:4)
一种便利方法顾名思义 - 它只是为了方便而存在,不一定是为了功能。
存在便利方法的一种常见情况是具有多个参数的方法,但某些参数以特定方式使用。很多时候,相同的方法会被不同的参数重载。
请使用以下代码:
public void myMethod(int value, boolean hasImportance) {
// do something.
}
public void myMethod(int value) {
myMethod(value, true);
}
在上面的示例中,myMethod(int)
方法可以被认为是myMethod(int, boolean)
的便捷方法,因为它为其中一个参数提供了默认参数。
对于PrintWriter.printf
,它基本上是调用PrintWriter.format
,但只是提供了一种调用format
方法的替代方法。
创建printf
方法作为一种便利方法背后的理由可能是因为printf
方法的命名传达了一个人试图用格式输出而不仅仅是format
的意思,这并没有表达人们试图用格式化来执行输出的意图。
答案 1 :(得分:2)
根据this,它们是相同的
/**
...
* <p> An invocation of this method of the form <tt>out.printf(format,
* args)</tt> behaves in exactly the same way as the invocation
*
* <pre>
* out.format(format, args) </pre>
...
*/
public PrintWriter printf(String format, Object ... args) {
return format(format, args);
}
答案 2 :(得分:1)
这里的便利可以用两种方式解释。
第一种方式
开发人员通常更熟悉“printf”功能。因此经常使用它。
第二种方式
如果要对printf和格式进行任何更改(如果有任何错误或功能),
一个函数可用于保留旧功能,另一个函数可以轻松修改。