单行块——它们被认为是糟糕的风格吗?

Single line blocks - are they considered to be bad style?

我是 Java 的新手,我不熟悉对一行块的一般态度。对于多行块,我使用这种样式:

statement
{
    /*
     * code
     */
}

而不是

statement {
    /*
     * code
     */
}

因为我非常讨厌后者的样子。不过,前者确实占了更多space。因此,对于包含一个简单语句的块,我使用一行来使我的代码更简洁。这是我通常如何编写 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();
}

这完全是个人喜好问题。您会发现每个程序员都有 his/her 自己的风格,但是为了与他人合作而不致于牺牲任何人,您必须确定一种共同的风格。存在很多。我个人发现,在给定项目中使用的 IDE 中的代码格式化程序在大多数情况下使用的默认格式是 "good enough",并且在任何给定时间能够重新格式化源代码的好处是一条命令胜过几乎所有其他论点。还有一些 IDE 之类的,例如 IntelliJ 实际上呈现的源与存储在磁盘上的源不同,所以这一点基本上是无关紧要的。

也就是说,我建议您编写 很多 代码,然后看看哪种最适合您。我倾向于不将括号放在单独的行上,而是在源代码中使用空行来逻辑地对代码进行分组。同样,这只是品味问题。

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

这实际上取决于项目中接受的代码约定。如果您是唯一从事该项目的开发人员,那么您需要选择您使用的代码风格。但是,在大多数 java 我使用或自己编写的代码中,我很少 seen/used 使用您使用的代码风格。 更有可能的是,您示例中的代码如下所示:

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 "java code style/conventions" 看看像 Oracle 或 [=23 这样的公司=] 建议。