我想在使用 alt+ins 生成 toString()
方法时更改其模板,但我不知道如何。
看,当我使用 alt+ins 生成方法时,IDE 会将其提供给我:
@Override
public String toString() {
return "name=" + name + " id=" + id;
}
我想将自动生成更改为如下所示:
@Override
public String toString() {
return "\n name=" + name + "\n id=" + id;
}
最佳答案
简短回答:没有简单的方法来自定义 toString()
NetBeans 中的方法来执行您想要的操作。
长答案:
1正如您所指出的,使用 Alt+Ins 将生成 toString()
像这样的方法:
@Override
public String toString() {
return "JavaApplication4{" + "name=" + name + ", id=" + id + '}';
}
这很接近您想要的,但不幸的是,除了允许您指定要包含/排除哪些变量之外,NetBeans 无法提供自定义生成代码的方法。
2您还可以使用 Ctl+Space 生成不同的 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()
方法,该方法可能比容易出错的每个生成的手动编辑 <b>toString()</b>
更好。方法。
[4] 一个重要的方法是编写您自己的 Code Generator当您按 Alt+Ins 时,在弹出菜单上添加条目。然而,仅仅定制 toString()
的输出似乎需要付出很大的努力。 .
[5] 另一种方法是 raise a bug report with NetBeans for an improvement to the existing functionality ,通过在生成 toString()
时添加一个选项以在每个变量之前包含换行符方法。
虽然这是理想的解决方案,而且实现起来可能很简单,但它在他们的优先级列表中可能不会很高。
关于java - 如何修改netbeans中的toString()方法(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010729/