代码行换行 - 如何处理长行

时间:2010-09-16 19:22:03

标签: java coding-style conventions line-breaks

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

这是一行:

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

对于如何/在哪里打破界限(及其原因)以及缩短生产线本身的方法,我都持开放态度。

我们不是Java商店,并且没有针对此类事情的本地约定,或者显然我只是遵循它们。

谢谢!

5 个答案:

答案 0 :(得分:39)

一般情况下,我在运算符之前断开行,并缩进后续行:

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

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

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

答案 1 :(得分:12)

我就是这样做的,而Google是按照我的方式做的。

  • 非作业运营商的符号之前打开
  • 在<{1}}和=的符号之后

在您的情况下,由于您使用的是120个字符,因此可以在赋值运算符之后将其分解

,

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

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

答案 2 :(得分:6)

恕我直言,这是写你的专栏的最佳方式:

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

这样增加的缩进没有任何括号可以帮助您看到代码只是因为行太长而被拆分。而不是4个空格,8个将使它更清晰。

答案 3 :(得分:4)

使用Guava的地图静态工厂方法,只有105个字符。

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = Maps.newHashMap();

答案 4 :(得分:0)

我认为将最后一个运算符移到下一行的开头是一个很好的做法。这样你就可以马上知道第二行的目的,即使它不是以操作符开头的。我还建议使用2个缩进空格(2个选项卡)作为先前损坏的选项卡,以区别于正常的缩进。这可以立即显示为继续前一行。因此我建议:

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