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>();
}