Intellij Idea Intellij toString多行

5gfr0r5j  于 7个月前  发布在  其他
关注(0)|答案(2)|浏览(67)

当在IntelliJ中自动生成toString方法时,它将所有文本放在一行中。其中一些行很大-我如何让Intellij在每个新变量之后将toString拆分为多行?
这就是我的:

@Override
    public String toString() {
        return "Address{" + " line1='" + line1 + '\'' + ", line2='" + line2 + '\'' + ", town='" + town + '\'' + ", county='" + county + '\'' + ", postcode='" + postcode + '\'' + ", country='" + country + '\'' + '}';
    }

字符串
这就是我想要的

@Override
    public String toString() {
        return "Address{" 
            + " line1='" + line1 + '\'' 
            + ", line2='" + line2 + '\'' 
            + ", town='" + town + '\'' 
            + ", county='" + county + '\'' 
            + ", postcode='" + postcode + '\'' 
            + ", country='" + country + '\'' + '}';
        }


我试过创建一个自定义模板,但它似乎只是忽略了这一点。

wn9m85ua

wn9m85ua1#

IntelliJ的String concat (+)模板生成的输出与您的问题中显示的所需输出相同。
为了使用这个模板...

  • Code > Generate > toString
  • 选择模板:String concat (+)

如果您需要调整此模板,然后单击Settings并选择Templates选项卡,复制并创建最接近您需要的现有模板的副本,编辑此副本,然后它将出现在Template选项卡中供选择。
下面是一个截图:


的数据
如果在使用此模板后,输出为一长行,则可能是您选择的Java代码格式化程序正在重新格式化toString模板生成的输出。

dnph8jn4

dnph8jn42#

下面是一个模板,用于生成toString()方法体,下一行中带有加号
1.打开模板设置toString() -> Settings -> Templates
1.克隆String concat(+)
1.使用该内容

public java.lang.String toString() {
#if ( $members.size() > 0 )
    #set ( $i = 0 )
return "$classname{"
    #foreach( $member in $members )
        #if ( $i == 0 )
            + "$member.name="##
        #else
            + ", $member.name="##
        #end
        #if ( $member.objectArray )
            + java.util.Arrays.toString($member.accessor)
        #elseif ( $member.primitiveArray && $java_version >= 5)
            + java.util.Arrays.toString($member.accessor)
        #elseif ( $member.string )
            + $member.accessor + '\''
        #else
            + $member.accessor
        #end
        #set ( $i = $i + 1 )
    #end
+ '}';
#else
return "$classname{}";
#end
}

字符串

相关问题