在
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 + '\'' + '}';
}
我尝试创建自定义模板,但它似乎忽略了这一点。
这是一个生成 toString() 方法主体的模板,下一行带有加号
toString() -> Settings -> Templates
String concat(+)
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
}