Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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 - Fatal编程技术网

java类中的静态变量声明

java类中的静态变量声明,java,Java,为什么这个声明是错误的?此声明导致标识符预期错误 class Abc{ static ArrayList<Integer> p; p = new ArrayList<Integer>(); // identifier expected error } Abc类{ 静态阵列列表p; p=new ArrayList();//标识符应为错误 } 这是正确的方法: import java.util.ArrayList; public class Abc {

为什么这个声明是错误的?此声明导致标识符预期错误

class Abc{
    static ArrayList<Integer> p;
    p = new ArrayList<Integer>(); // identifier expected error
} 
Abc类{
静态阵列列表p;
p=new ArrayList();//标识符应为错误
} 

这是正确的方法:

import java.util.ArrayList;

public class Abc {
    static ArrayList<Integer> p;
    static {    
        p = new ArrayList<Integer>(); // works
    } 
}
import java.util.ArrayList;
公共课Abc{
静态阵列列表p;
静态{
p=新建ArrayList();//有效
} 
}

在类主体中有一个独立的赋值语句。你不能有一步一步的代码,它必须在某个东西(初始化程序块、方法、构造函数等)中。在您的具体情况下,您可以:

  • 把它作为初始值写在声明上

    static ArrayList<Integer> p = new ArrayList<>();
    

更多信息。

在第二行周围放上大括号,或者像这样做:静态ArrayList p=new ArrayList()。。更好的做法是编写接口代码,并使用最新的方式处理泛型:static List p=new ArrayList();“为什么这个声明是错误的?”
p=newarraylist()不是声明,而是初始化。@akshayapandey:这仍然是错误的。这是一种可行的方法,但有很多可能的改进。是的。粘贴的代码是错误的。我的意思是这是正确的语法(大括号)
static {
    p = new ArrayList<Integer>();
}