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中,在字节码中创建了额外的形式。一般来说,除非字符串创建是在一个紧密的循环中执行的,否则这并不重要。

至于第二个问题,你试过什么?

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

严格来说,它的效率低于 Eclipse 使用的形式,因为它创建了一个中间体String,然后立即被丢弃。

于 2013-03-08T20:30:52.453 回答
0

除非我误解了这个问题,否则您可以在 Eclipse Preferences 中更改模板:Java -> Code Style -> Code Templates。

于 2013-03-08T20:32:54.980 回答