鉱山の教授は、かつて次のコードが実行すべきではないことを言った:System.out.println()内のtoString()メソッドはダブルコールですか?
のSystem.out.println(Object.ToStringを());
彼(私は "効果的なJava"を引用したと信じて)それはダブルコールを引き起こすと述べた。 print文はオブジェクトのtoStringメソッドを呼び出すため、toStringメソッドを2回呼び出す方が効率的ではありません。好ましい方法は、単に使用することです:
System.out.println(オブジェクト);
明らかに、この方法でコードが良くなり、時間を節約できます。私は何となくこれをいつもやっていますが、私の質問は「これは実際に効率的ですか?」です。 PrintStreamのドキュメントを見ると、printメソッドがオーバーロードされ、パラメータとしてStringをとります(toStringメソッドが最初に呼び出された場合)。私は、印刷メソッドのそのバージョンが入力されたパラメータのtoStringメソッドをどこで呼び出すのか見ていないので、それを行うには意味があるとは思いません。
また、重複している場合はごめんなさい。私はそれに関する話題を見つけることができませんでした。
+1いい質問です。良い研究。 – iamnotmaynard
さらに重要なことに、 'println'の呼び出しは' toString'の呼び出しよりもはるかに時間がかかり、これはほとんど無関係です。 – assylias