質問: 本日、業務で下記のようなコードを見かけました。 ``` log("文字列リテラル".toString()); ``` やろうとしているのがlogメソッドに**"文字列リテラル"**を渡しているというのはわかるのですが、気になったのがtoStringメソッドを使って、文字列リテラルの中身を渡しているところです。やろうとしていることが文字列リテラルで示された文字列を渡すことなので、 ``` log("文字列リテラル"); ``` で済ませられると思うのですが、(Stringクラスの)toStringメソッドを通すことで、何か違いがあるのでしょうか? JavaのStringクラスのリファレンスを見ても、toStringメソッドの概要としては > > このオブジェクト (すでに文字列である) 自身が返されます。 > > > とあるだけなので、尚更、文字列リテラルに対してtoStringメソッドを使用する意義がわかりません。 どなたかこの辺りのことをご存じの方がいらっしゃいましたら、ご教示願います。
回答: もちろん意義は皆無です。 ではどうしてそんな書き方になっているか? バージョン管理で履歴をたどればわかるかもしれません。gitでいうannotate、svnでいうblameです。 例えば、文字列リテラルなところがまたは何か別の型の変数で、置換の結果今の形になったとかです。