单行块 - 它们被认为是不好的风格吗?

时间:2017-05-28 18:50:31

标签: java code-formatting

我对Java很新,而且我不熟悉对一个行块的一般态度。对于多行块,我使用这种风格:

statement
{
    /*
     * code
     */
}

而不是

statement {
    /*
     * code
     */
}

因为我绝对讨厌后者的样子。然而,前者确实占用更多空间。因此,对于包含一个简单语句的块,我使用一行来使我的代码更简洁。这是我一般写getter的例子:

private int foo;
private int bar;
private int baz;

// Getters:
public int getFoo() {return foo;}
public int getBar() {return bar;}
public int getBaz() {return baz;}

这令人不满吗?如果没有,那么这样的事情呢?

public <S, T> void printTwoArrays(S[] first, T[] second)
{
    for (S elem: first) {System.out.print("" + elem + " ");}
    System.out.println();
    for (T elem: second) {System.out.print("" + elem + " ");}
    System.out.println();
}

2 个答案:

答案 0 :(得分:1)

这完全是品味问题。你会发现每个程序员都有他/她自己的风格,但为了与别人合作而没有任何人被杀,你必须采用一种共同的风格。很多存在。我个人发现,在给定项目中使用的IDE中的代码格式化程序使用的默认值对于大多数目的而言“足够好”,并且在任何给定时间使用单个命令重新格式化源的好处几乎胜过所有其他论点。还有一些类似于IntelliJ的IDE实际上以不同于存储在磁盘上的方式呈现源,因此这点基本上是无关紧要的。

那就是说,我建议你写一个很多的代码,看看什么最适合你。我倾向于不将括号放在单独的行上,而是使用源内的空行来逻辑地对代码进行分组。再一次,这只是一个品味问题。

请参阅Where can I find the OFFICIAL Java Coding/Style Standards?,其中最有可能表明大多数其他程序员会做的事情。

答案 1 :(得分:1)

这实际上取决于项目中接受的代码约定。如果您是唯一正在处理该项目的开发人员,那么您就可以选择使用的代码样式。但是,在我使用或编写的大多数java代码中,我很少看到/使用您正在使用的代码样式。 更有可能的是,您示例中的代码如下所示:

public <S, T> void printTwoArrays(S[] first, T[] second) {
  for (S elem: first) {
    System.out.print("" + elem + " ");
  }
  System.out.println();
  for (T elem: second) {
    System.out.print("" + elem + " ");
  }
  System.out.println();
}

作为一个副节点 - 如果我对您在示例中提供的代码进行代码审查,我会将用于打印数组的方法提取到单独的方法中。所以相反它看起来就像这样:

public <S, T> void printTwoArrays(S[] first, T[] second) {
   printOneArray(first);
   printOneArray(second);
} 

public <T> void printOneArray(T[] arrayToPrint) {
   for (S elem: arrayToPrint) {
     System.out.print("" + elem + " ");
   }
} 

如果您对更常用于编写Java代码的代码约定感兴趣,我还建议您使用google&#34; java代码样式/约定&#34;并了解甲骨文或谷歌等公司对此的建议。