eclipse中的toString

时间:2013-03-08 20:25:52

标签: java eclipse templates tostring

在eclipse中生成了toString方法,如下所示:

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}]

3 个答案:

答案 0 :(得分:6)

第一种形式的速度要快得多 - 在其他形式中,在字节代码中创建了额外的StringBuilder。一般来说,除非在紧密循环中执行字符串创建,否则这并不重要。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

除非我误解了这个问题,否则你可以在Eclipse Preferences中更改模板:Java - >代码风格 - >代码模板。