有了很长的代码,什么是分解的标准

cup*_*ava 0 java formatting

Java代码示例:

public String toString() {

   return (title + '\n' + border + '\n' + getEmpID() + " " 
           + getLastName() + " " + getFirstName() + " " 
           + getHours() + " " + getRate() + " " + getGross() + border);}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,它是一个很长的toString覆盖.

将代码行分解为较小位的标准位置在哪里.之前'+''" "'?请帮忙!:)

此外,如果你能告诉我如何正确放置{}那将是伟大的.

Jon*_*eet 5

这基本上取决于您当地的会议.我个人会:

  • 卸下()围绕整个表达式; 他们没有任何区别
  • 在任何地方使用字符串文字而不是字符文字; 这避免了意外地结束执行整数加法而不是连接
  • 断裂线之前+运营商,这清楚地表明,下一行的开始确实在现有的语句的中间,而不是一个新的语句.(这是一般惯例,不限于这种情况.)
  • 无论你是在空间之前还是在价值之前打破,都要保持一致; 你已经这样做了.(我不认为你的方式是一致的,或者你是否在不同的陈述之间保持一致 - 但在一种方法中,保持一致是很好的.)
  • 将右大括号移动到下一行
  • 添加@Override注释

最终会:

@Override public String toString() {
    return title + "\n" + border + "\n" + getEmpID() + " " 
        + getLastName() + " " + getFirstName() + " " 
        + getHours() + " " + getRate() + " " + getGross() + border;
}
Run Code Online (Sandbox Code Playgroud)

您也可以考虑使用String.format而不是字符串连接 - 并且可能还考虑每行只有一个值(和空格),从而导致代码更长但更容易更改,例如

@Override public String toString() {
    return title + "\n" 
        + border + "\n" 
        + getEmpID() + " " 
        + getLastName() + " " 
        + getFirstName() + " " 
        + getHours() + " " 
        + getRate() + " " 
        + getGross() 
        + border;
}
Run Code Online (Sandbox Code Playgroud)

值得一提的是,你的toString()方法总是使用\n作为一个换行符与平台无关.这是一个合理的决定,但你需要注意一个.我个人通常不会在toString结果中包含换行符,但这是你的电话.