为什么下面的代码片段没有给出编译时错误?

时间:2018-06-28 10:27:21

标签: java static final

在声明了静态最终实例变量之后,将为其分配一个ArrayList对象。但是,当我添加一个额外的分号时,使用Java编译器就可以了。这是代码。

import java.util.ArrayList;
import java.util.List;

public class FinalExample {

    private static final List<String> foo = new ArrayList();; //double semicolons are fine with compiler

    public static void main(String[] args){
        System.out.println(FinalExample.foo);//Result is - []
    }

1 个答案:

答案 0 :(得分:1)

分号结束一个语句。因此,当您在Java中提供多个分号时,编译器会将第二个分号视为空语句,而不会抱怨它。