有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么逗号(,)不会导致编译错误?

我正在写一段代码,突然发现“,”不会导致任何编译错误。为什么?

我的意思是

public enum A {
    B, C, ; // no compilation error
}

但是

int a, b, ; // compilation error

共 (3) 个答案

  1. # 1 楼答案

    这种语言就是这样设计的,这样就可以很容易地添加和重新排序元素——特别是当每个元素都在一行上时

    与声明变量的比较不是一个好的比较,但是数组以同样的方式允许更多的值:

    int[] foo = { 1, 2, 3, };
    

    基本上,向源代码中定义的集合添加额外值比向声明语句添加变量更常见

  2. # 2 楼答案

    其主要优点是,它使多行列表更易于编辑,并减少了差异中的混乱

    更改:

    public enum Names{
         MANNY,
         MO,
         JACK,
    }
    

    致:

    public enum Names{
         MANNY,
         MO,
         JACK,
         ROGER,
    }
    

    仅涉及差异中的一行更改:

      public enum Names{ 
           MANNY,
           MO,
           JACK,
    +      ROGER,
      }
    

    这胜过了省略尾随逗号时更容易混淆的多行差异:

      public enum Names {
           MANNY,
           MO,
    -      JACK
    +      JACK,
    +      ROGER
      }
    

    后一种差异使我们更难看到只添加了一行,而另一行没有更改内容

    根据雷蒙德的回答:https://stackoverflow.com/a/11597911/5111897