将ArrayList转换为Array

Hog*_*790 3 java arrays null exception arraylist

我在将数组列表转换为java中的数组时遇到了一些麻烦.

我有一个名为Table的类,它包含一个名为applicantsString 的数组列表.当我使用我的toArray()函数时,似乎没有将数组列表转换为数组.

我知道这个,因为当我运行listArray()函数时,它会给出错误:

java.lang.NullPointerException.

这是代码.任何帮助将不胜感激.

public class Table {
    public ArrayList<String> applicants;
    public String appArray[];

    public Table() {
        applicants = new ArrayList<String>();
    }

    public void addApplicant(String app) {
        applicants.add(app);
    }

    public void toArray() {
        int x = applicants.size();
        String[] appArray = new String[x];
        appArray = applicants.toArray(appArray);
    }

    public void list() {
        for (int i = 0; i < applicants.size(); i++) {
            System.out.println(applicants.get(i));
        }
    }

    public void listArray() {
        for (int i = appArray.length; i > 0; i--) {
            System.out.println(appArray[i]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 16

这是因为您appArray在这里隐藏了方法中的字段:

 int x = applicants.size();
 String[] appArray = new String[x];
 appArray = applicants.toArray(appArray);
Run Code Online (Sandbox Code Playgroud)

appArray应该使用appArray已在类中声明的字段时创建一个新的局部变量.

你应该做

public void toArray()
{
    appArray = applicants.toArray(new String[0]);
}
Run Code Online (Sandbox Code Playgroud)