printf
メソッドの実装をPrintStream
クラスで見ていたのですが、それは同じクラスのformat
メソッドを呼び出すことです。私はあなたがformat
メソッドを呼び出すことができたときにprintf
方法を必要とした理由を見つけることを試みたときに PrintStreamクラスがprintfとformatメソッドを同じように動作させるのはなぜですか?
public PrintStream printf(String arg0, Object... arg1) {
return this.format(arg0, arg1);
}
public PrintStream printf(Locale arg0, String arg1, Object... arg2) {
return this.format(arg0, arg1, arg2);
}
は、私が得たすべてのは、彼らはまったく同じ方法に振る舞う
を意味しているの答えでした。 両者が同じクラスのメンバーである場合は、それらの両方がpublic
であり、それらの両方が、なぜprintf
メソッドが定義されていた、Java
1.5に追加されましたか?
私は 'format'メソッドがなぜ定義されたのですか?私には、 "format"という名前は印刷を意味するのではなく、 "printf"という意味を持ち、対応する[C method](http://www.cplusplus.com/reference/cstdio/printf/)と非常によく似た機能性。 'String.format()'は結果をフォーマットして*返すので意味があります。 'PrintStream.printf()'はフォーマットされた文字列を出力するので意味があります。これらを考えると、 'PrintStream.format()'はその効果を混乱させる/誤解を招きます。少なくとも直感的ではありません。 – Andreas
@アンドレアス、まさに!問題は、別のものを呼び出すときに2つの方法がある理由です。 – Yogesh
なぜ自然が猫**と**犬を発明したのですか?彼らは両方の肉食動物です。確かにそれらの種の1つは不必要です! –