LoginSignup
15

More than 5 years have passed since last update.

Javaでの文字列連結では、できるだけ+演算子を使おう!

Last updated at Posted at 2016-04-13

Javaでの文字列連結の話題です。

「なにがなんでもStringBuilderを使うのは良くない」のは「可読性が悪い」から。

私も合意します。ただし、私の場合、少し言い方が違います。

「できるだけStringBuilderを使わずに、+演算子を使おう」です。

その理由を述べます。

Javaでは、+演算子StringBuilder を使ったバイトコードに変換してくれますね。

ところが、将来のJavaでStringBuilderより性能が良いクラスが出たとします。このクラスを仮に StringGenerator としましょう。そして、Javaは+演算子StringBuilderではなく、StringGeneratorを使ったバイトコードに変換してくれるかもしれません。

StringBuilderを使ったレガシーコードは、StringGeneratorに書き換えなければ性能が良くなりません。しかし、+演算子を使ったレガシーコードは、書き直さなくても、StringGeneratorにコンパイルしてくれますから、性能は良いわけです。

つまり、+演算子は、「可読性が良い」だけではなく、どのクラスを使うかを明示しない「抽象化した表現」と見ることもできるんじゃないかなと。

もちろん、「+演算子を適切に使いこなせる」ことが前提です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15