如何修改netbeans中的toString()方法(java)

时间:2018-04-24 21:07:22

标签: java netbeans

我想在使用 alt + ins 生成@Override public String toString() { return "name=" + name + " id=" + id; } 方法时更改@Override public String toString() { return "\n name=" + name + "\n id=" + id; } 方法的模板,我不知道如何。< / p>

看,当我使用 alt + ins 生成方法时,ide会告诉我:

{{1}}

我想将自动生成更改为:

{{1}}

1 个答案:

答案 0 :(得分:1)

简短回答:没有简单的方法可以自定义NetBeans中的 toString() 方法来执行您想要的操作。

答案很长:

1正如您所指出的,使用 Alt + Ins 会生成 toString() 方法,如下所示:

@Override
public String toString() {
    return "JavaApplication4{" + "name=" + name + ", id=" + id + '}';
}

这很接近你想要的,但遗憾的是NetBeans没有办法自定义生成的代码,只允许你指定要包含/排除的变量。

2您还可以使用 Ctl + 空格生成不同的 toString() 方法:

@Override
public String toString() {
    return super.toString(); //To change body of generated methods, choose Tools | Templates.
}

正如生成的代码的注释中所述,您可以对其进行自定义,但由于两个原因,它并没有真正帮助您:

  • 无法在模板中指定变量的名称。
  • 即使您可以这样做,相同的模板代码也会被其他生成的方法使用,例如 hashCode() equals() ,哪个不好。

[3]另一种可能的方法是使用 Alt + Ins 生成代码,然后使用正则表达式修改生成的代码:

  • 找到包含 public String toString()
  • 的行
  • 在以下行中,在 \n 的每个实例后立即插入 + " 。 (即空间加空间双引号)。

根据您创建 toString() 方法的频率,该方法可能比对每个生成的toString()方法的错误手动编辑更好。

[4]当您按 Alt + Ins 时,一个非平凡的方法是编写您自己的Code Generator以在弹出菜单上添加条目。但是,为了自定义 toString() 的输出,这似乎需要付出很多努力。

[5]另一种方法是raise a bug report with NetBeans for an improvement to the existing functionality,通过在生成 toString() 方法时添加一个选项以在每个变量之前包含换行符。 虽然这是理想的解决方案,并且可能实现起来很简单,但它们的优先级列表可能不会很高。