3

toStringメソッドは、次のようにEclipseで生成されました。

StringBuilder builder = new StringBuilder();
builder.append("Person [");
if (firstName != null)
    builder.append("firstName=").append(firstName).append(", ");
if (lastName != null)
    builder.append("lastName=").append(lastName).
if (title != null)
    builder.append("title=").append(title).append(", ");
if (car != null)
    builder.append("car=").append(car).append(", ");
    builder.append("]");

なぜ彼らはもっと短い形式を使わなかったのですか?

builder.append("firstName=" + firstName + ", ");

作成で時間を節約するためStringですか?

テンプレートをこの形式に変更するにはどうすればよいですか?

${object.className} [${member.name()}=${member.value}, ${otherMembers}]
4

3 に答える 3

6

最初の形式はこれまでになくわずかに高速です。他の形式StringBuilderでは、バイトコード内に追加の形式が作成されます。一般に、文字列の作成がタイトなループで実行されない限り、これはそれほど重要ではありません。

2番目の質問については、何を試しましたか?

于 2013-03-08T20:31:31.907 に答える
2
builder.append("firstName=" + firstName + ", ");

Eclipseが使用しているフォームよりも厳密に効率が低くなります。これは、中間体が作成され、Stringすぐに破棄されるためです。

于 2013-03-08T20:30:52.453 に答える
0

質問を誤解しない限り、Eclipse設定でテンプレートを変更できます:Java->コードスタイル->コードテンプレート。

于 2013-03-08T20:32:54.980 に答える