写作是好的风格:
objectName.methodWithManyParameters(someLongParameter1, someLongParameter2, someLongParameter3, someLongParameter4, someLongParameter5);
(对于一行来说,显然很长)
objectName.methodWithManyParameters
(
someLongParameter1,
someLongParameter2,
someLongParameter3,
someLongParameter4,
someLongParameter5
);
另一种方式是:
objectName.methodWithManyParameters(someLongParameter1, someLongParameter2,
someLongParameter3, someLongParameter4,
someLongParameter5);
答案 0 :(得分:4)
当表达式不适合单行时,请根据以下一般原则将其分解:
如果上述规则导致令人困惑的代码或代码被压缩到右边距,则只需缩进8个空格。
以下是一些破解方法调用的示例:
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
第二个选项是标准约定,首先是更具可读性,但是在很长的方法中可能会有害,或者由于类的长度而导致多次调用......
答案 1 :(得分:3)
如果您正在与他人合作,或者在预先存在的代码库中,请使用他们已经使用的任何标准。 80 vs 100列,选项#1/2/3等
如果你自己工作,Jordi的回答就是这样。使用Oracle约定,可能使用100个字符的行长度;我们拥有的现代屏幕非常适合1996年的显示器。
答案 2 :(得分:2)
据我所知,没有标准的换行方式。这要么是个人偏好,要么是公司内部编码风格标准。 不过,我建议您阅读Google Java Style。以下是可能相关的引用。
我的个人偏好如下(希望有所帮助):
objectName.methodWithManyParameters( someLongParameter1,
someLongParameter2,
someLongParameter3,
someLongParameter4,
someLongParameter5 );
4.4色谱柱限制:80或100
项目可以自由选择80或100的列限制 字符。除非如下所述,否则任何超出此范围的行 limit必须是换行的,如第4.5节所述, 换行。
例外:
无法遵守列限制的行(例如,a Javadoc中的长URL,或者长JSNI方法引用)。包装和 import语句(参见3.2节包语句和3.3导入 语句)。注释中的命令行可以剪切和粘贴 变成一个壳。 4.5换行
术语注意:当代码可能合法占用时 单行分为多行,通常要避免 溢出列限制,此活动称为换行。
没有全面的,确定性的公式显示具体如何 在任何情况下都换行。通常有几个有效的 用同一条代码换行的方法。
提示:提取方法或局部变量可以解决问题 无需换行。
4.5.1在哪里打破
换行的主要指令是:更喜欢突破 句法层面。也:
如果在非赋值运算符处断行,则会出现中断 在符号之前。 (请注意,这与使用的练习不同 适用于其他语言的Google风格,例如C ++和JavaScript。) 也适用于以下"类似运营商的"符号:点 分隔符(。),类型bounds()中的&符号, 和catch块中的管道(catch(FooException | BarException e))。 当一个线在赋值运算符处断开时,通常会中断 符号后面,但两种方式都可以接受。这也是 适用于"赋值运算符"结肠增强了 (" foreach")声明。方法或构造函数名称保持附加 后面的开括号(()。逗号(,)保持连接 到它之前的标记。