类java

时间:2018-02-16 09:07:08

标签: java

为什么这个声明错了?该声明导致标识符预期错误

class Abc{
    static ArrayList<Integer> p;
    p = new ArrayList<Integer>(); // identifier expected error
} 

2 个答案:

答案 0 :(得分:2)

您的班级团体中有一份独立的作业声明。你不能在那里有逐步代码,它必须在某些东西(初始化块,方法,构造函数......)中。在您的具体情况下,您可以:

  • 将其作为初始化程序放在声明中

    static ArrayList<Integer> p = new ArrayList<>();
    
  • 将其包裹在static初始化块

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

更多the tutorial on initializing fields

答案 1 :(得分:0)

这是正确的方法:

import java.util.ArrayList;

public class Abc {
    static ArrayList<Integer> p;
    static {    
        p = new ArrayList<Integer>(); // works
    } 
}