Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么下面的代码段没有给出编译时错误?_Java_Static_Final - Fatal编程技术网

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

Java 为什么下面的代码段没有给出编译时错误?,java,static,final,Java,Static,Final,声明静态最终实例varibale后,将为其指定一个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

声明静态最终实例varibale后,将为其指定一个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 - []
    }
import java.util.ArrayList;
导入java.util.List;
公共类最终示例{
private static final List foo=new ArrayList();//编译器可以使用双分号
公共静态void main(字符串[]args){
System.out.println(FinalExample.foo);//结果是-[]
}

分号结束一条语句。因此,当您在java中给出多个分号时,编译器认为第二个分号是一条空语句,并且不会对此进行抱怨。

您是否希望该空语句会导致前面的赋值失败?我搜索了一些细节。但事实上,我只能找到关于,nothi的部分ng关于空声明。但请确保,这将是相同的行为。问题中的双分号不在语句的结尾。它在类成员声明的结尾。事实上,语句在这里是非法的。声明不是语句吗?不是在这个位置,不是。