打开方法(直接看我下面给的生成效果和模板研究也行..):
IDEA→在一个类内部→alt+insert→选中 toString(),估计其它方法也可以,回车→在选择成员界面右上角 setting→templates 选项卡→左侧目录上面有个绿色的加号
public class product { private String code; private String description; private double price; }用如下模板进行 toString 方法生成(缩进没毛病,模板里就是这个样子):
public java.lang.String toString() { #if ( $members.size() > 0 ) #set ( $i = 0 ) return "$classname{" + #foreach( $member in $members ) #if ( $i == 0 ) "## #else ", ## #end #if ( $member.objectArray ) #if ($java_version < 5) $member.name=" + ($member.accessor == null ? null : java.util.Arrays.asList($member.accessor)) + #else $member.name=" + java.util.Arrays.toString($member.accessor) + #end #elseif ( $member.primitiveArray && $java_version >= 5) $member.name=" + java.util.Arrays.toString($member.accessor) + #elseif ( $member.string ) $member.name='" + $member.accessor + '\'' + #else $member.name=" + $member.accessor + #end #set ( $i = $i + 1 ) #end '}'; #else return "$classname{}"; #end }效果如下:
public String toString() { return "product{" + "code='" + code + '\'' + ", description='" + description + '\'' + ", price=" + price + '}'; }
public String toString() { return super.toString() + "code='" + code + '\'' + ", description='" + description + '\'' + ", price='" + price + '\'' ; }也不用搞的像 IDEA 那么严谨完美...该如何写呢?谢谢
1
yestodayHadRain 2018-05-11 18:52:07 +08:00
直接封装成一个工具类,来调用不就好了
|
2
shootsoft 2018-05-11 21:20:42 +08:00 via iPhone 1
IDEA 里面的模版用的是 Velocity http://velocity.apache.org
|
3
shootsoft 2018-05-11 21:33:05 +08:00 1
不是有一个模版叫 “ String concat (+) and super.toString() ” 了吗?不过根据你的需求,你要的大概就是这个样子的吧:
``` public java.lang.String toString() { #if ( $members.size() > 0 ) #set ( $i = 0 ) return super.toString() + #foreach( $member in $members ) #if ( $i == 0 ) "## #else ", ## #end #if ( $member.objectArray ) #if ($java_version < 5) $member.name=" + ($member.accessor == null ? null : java.util.Arrays.asList($member.accessor)) + #else $member.name=" + java.util.Arrays.toString($member.accessor) + #end #elseif ( $member.primitiveArray && $java_version >= 5) $member.name=" + java.util.Arrays.toString($member.accessor) + #elseif ( $member.string ) $member.name='" + $member.accessor + '\'' + #else $member.name=" + $member.accessor + #end #set ( $i = $i + 1 ) #end '}'; #else return super.toString(); #end } ``` |