有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想在使用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;
}

共 (1) 个答案

  1. # 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]一种非常简单的方法是编写自己的Code Generator,当您按下Alt+Ins时,在弹出菜单上添加一个条目。然而,仅仅为了定制来自toString()的输出,这似乎需要很多努力

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