1

toStringメソッドを持つオブジェクトの配列があり、forループを使用して配列を出力する場合(たとえば、単にarray[i]オブジェクトに到達して実行するためSystem.out.println(array[i]))、toStringメソッドは自動的に呼び出されますか?そうであるようですが、これが何が起こっているのかを確認したいと思います。

4

2 に答える 2

5

はい、そうなります。

実際、暗黙的に呼び出すよりもこれを行うことの利点は.toString()、例外をスローせずにnullが処理されることです。の場合、array[i]がスローされる場所を出力します。nullthen System.out.println(array[i])nullSystem.out.println(array[i].toString())NullPointerException

これは、System.out.println(object)メソッドが呼び出しSystem.out.print(object)を呼び出し、呼び出しString.valueOf(object)が順番に呼び出すためobject.toString()です。

于 2012-05-09T12:13:31.827 に答える
1

はい、確かにそうなります。

println(Object)方法とprint(Object)メソッドの動作に関するAPIの説明を次に示します。

println(Object)

print(Object)

于 2012-05-09T12:15:41.967 に答える