代码换行 - 如何处理长行

我面对的是一行 153 个字符长的特定行。现在,我倾向于在120个字符之后打破一些东西(当然,这在很大程度上取决于我的位置和当地的惯例。但说实话,无论我在哪里打破这条线,都会让它看起来很糟糕。所以我正在寻找一些关于我应该为它做些什么的想法。

这是一行:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = new HashMap<Class<? extends Persistent>, PersistentHelper>();

我对如何/在哪里打破这条线(以及为什么)以及缩短界线本身的方法都持开放态度。

我们不是Java商店,也没有这种事情的本地惯例,或者显然我会简单地遵循它们。

谢谢!


答案 1

通常,我在运算符之前断开行,并缩进后续行:

Map<long parameterization> longMap
    = new HashMap<ditto>();

String longString = "some long text"
                  + " some more long text";

对我来说,领先的运营商清楚地传达了“这条线是从其他东西延续下来的,它不是独立存在的。当然,其他人有不同的偏好。


答案 2

这就是我的做法,而谷歌也是这样做的。

  • 非赋值运算符的符号的中断。
  • 在 和 的符号之后断开。=,

在你的例子中,由于你使用的是120个字符,你可以在赋值运算符之后打破它,导致

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper =
        new HashMap<Class<? extends Persistent>, PersistentHelper>();

在Java中,对于这种特殊情况,我会在中断后给出两个制表符(或八个空格),具体取决于是使用制表符还是空格进行缩进。

这当然是个人偏好,如果您的项目有自己的换行约定,那么无论您喜欢与否,都应该遵循这一点。