代码之家  ›  专栏  ›  技术社区  ›  corsiKa

代码行包装-如何处理长行

  •  31
  • corsiKa  · 技术社区  · 14 年前

    我面对的是一条长153个字符的线。现在,我倾向于打破120个字符后的事情(当然,这很大程度上取决于我所在的位置和当地的惯例),但老实说,我打破的每一个行都会让它看起来很糟糕。所以我想知道我该怎么做。

    这条线是:

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

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

    我们不是Java商店,也没有地方惯例,或者很明显我只是跟着他们。

    谢谢!

    5 回复  |  直到 14 年前
        1
  •  36
  •   moffeltje    6 年前

    一般来说,我会断线 之前 运算符,并缩进后续行:

    Map<long parameterization> longMap
        = new HashMap<ditto>();
    
    String longString = "some long text"
                      + " some more long text";
    

    对我来说,主要的运营商明确地表示,“这条线是从其他东西延续过来的,它不是独立的。”当然,其他人有不同的偏好。

        2
  •  12
  •   Alexander Rossa fairidox    6 年前

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

    • 断裂 之前 的符号 不转让 操作员。
    • 断裂 之后 的符号 = 以及 , .

    在您的情况下,由于您使用的是120个字符,因此可以在赋值运算符之后中断它,从而导致

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

    在Java中,对于这个特定的情况,在中断之后,我会给出两个标签(或八个空间),这取决于标签或空格是否用于缩进。

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

        3
  •  6
  •   Colin Hebert    14 年前

    imho这是写行的最佳方式:

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

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

        4
  •  4
  •   whiskeysierra    14 年前

    使用guava的静态工厂方法绘制地图,长度仅为105个字符。

    private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = Maps.newHashMap();
    
        5
  •  0
  •   SaÅ¡a    8 年前

    我认为把最后一个操作符移到下一行的开头是一个很好的实践。这样你就可以马上知道第二行的目的,即使它不是从一个操作符开始的。我还建议对以前断开的制表符使用两个缩进空格(两个制表符),以使其不同于普通缩进。这将立即显示为继续上一行。因此,我建议:

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