Java の「+」演算子は、連結演算子としても機能します。プリミティブとオブジェクトを連結でき、その結果である文字列を返します。
次の説明は、Java のラッパー クラスに精通していることを前提としています。よく知らない方はぜひ読んでみてください。
Java の「+」演算子は、ステートメントで使用されるすべてのプリミティブ データ型を同等の Wrapper クラスに変換し、それらのインスタンスで toString() メソッドを呼び出し、その結果 (式の文字列) を使用します。
例: Java では、次のようなステートメントは、System.out.println( 3 + " Four " + 'C' );
最終的に content を含む String を作成します"3 Four C"
。
上記のステートメントで、3 はプリミティブな int 変数です。" Four " は String オブジェクトで、'C' はプリミティブ char 変数です。
'+' concat 操作中に、3 は対応する Wrapper クラス -> Integer に変換されます。そして、 toString() メソッドが呼び出されます。出力は文字列 3 です。つまり、"3"
" Four " は既に文字列であり、それ以上の処理は必要ありません。「C」は文字ラッパー クラスに変換され、toString() メソッドは文字列「C」を返します。
最後に、これらの 3 つが追加されて「3 Four C」が得られます。
総括する:
- プリミティブが「+」演算子で使用される場合、それはその Wrapper クラスに変換され、次に toString() メソッドが呼び出され、結果が追加に使用されます。
- String 以外のオブジェクトが使用される場合、その toString() メソッドが呼び出され、その結果が追加に使用されます。
- String が呼び出された場合、行うことはあまりなく、文字列自体が追加に使用されます。