我在Eclipse中有一个方法,如下所示。
public String toString() {
return "HouseVo [ "
+ "Name : " + this.name == null ? "" : this.name
+ "Address : " + this.address == null ? "" : this.address;
}
格式化后,它变为:
return "HouseVo [ " + "Name : " + this.name == null ? ""
: this.name + "Address : " + this.address == null ? ""
: this.address;
有任何方法可以修复它以便正确格式化吗?
答案 0 :(得分:6)
三元运算符的优先级非常低。 Eclipse正在重构您的代码这一事实暗示它不会像您认为的那样做。试试这个:
public String toString() {
return "HouseVo [ "
+ "Name : " + (this.name == null ? "" : this.name)
+ "Address : " + (this.address == null ? "" : this.address)
}
答案 1 :(得分:3)
没有一种绝对正确的方法可以自动格式化Eclipse遵循的代码。
那就是说,我反而将代码重构为这样的东西:
static String emptyIfNull(String s) {
return (s == null) ? "" : s;
}
public String toString() {
return String.format(
"HouseVo [ Name : %sAddress : %s",
emptyIfNull(this.name),
emptyIfNull(this.address)
);
}
这使用String.format
,很明显目前,您的toString()
格式没有结束]
,Address
字段紧跟{{1}中间没有任何分隔符的值。
使用格式化字符串可以轻松切换到比如这样的内容:
Name
因此,代码不仅更具可读性,而且更易于维护。
答案 2 :(得分:1)
您可以尝试在Eclipse首选项( Java>代码样式> Formatter )中配置格式化程序并编辑配置文件。
关于缩进,括号,新行,换行,空格,控制语句等,有很多选项。
不确定您是否可以修复此确切格式,但在换行符部分中,您可以对表达式>进行修改。条件选项。看看有没有一种风格可以满足您的需求。
答案 3 :(得分:1)
您可以创建一个xml文件,在其中可以指定格式化代码的方式,然后可以使用首选项添加该xml文件 - Java - 代码样式 - 格式化程序,并在其中输入xml文件。
以下是编写该xml文件的示例代码
答案 4 :(得分:0)
当你使用eclipse中给出的格式工具时,它会像那样格式化它。
如果您需要更易读的格式,最好将字符串连接分开,如下所示。
java.lang.StringBuffer sb = new java.lang.StringBuffer("HouseVo [ ");
sb.append("Name : " + (this.name == null ? "" : this.name));
sb.append("Address : " + (this.address == null ? "" : this.address));
return sb.toString();
答案 5 :(得分:0)
使用//
:
public String toString() {
return "HouseVo [ " //
+ "Name : " + this.name == null ? "" : this.name //
+ "Address : " + this.address == null ? "" : this.address;
}
在这种特殊情况下,我会将每个?: - 运算符结果提取到局部变量,然后在结尾处将它们连接起来。使阅读更容易。
答案 6 :(得分:-1)
加上一些括号可能有所帮助。试试这个:
public String toString() {
return "HouseVo [ "
+ ("Name : " + this.name == null ? "" : this.name)
+ ("Address : " + this.address == null ? "" : this.address)
+ "]";
}