尝试将ArrayList转换为Array,但是IDE"找不到符号"

时间:2016-01-11 17:33:54

标签: java arraylist

我有这个Animal对象的ArrayList:

ArrayList<Animal> animals = new ArrayList<Animal>();
animals.add(new Animal(1, "animal1", 50, "10 Janvier 2016", "Noir", 4, true));
animals.add(new Animal(2, "animal2", 40, "10 Janvier 2016", "Noir", 4, true));

我试图创建一个将此ArrayList转换为Array的方法。到目前为止,我已经提出了:

public Animal[] tArray(){
    return animals.toArray();
}

但我的IDE说他找不到符号变量动物。

我如何将ArrayList动物转换为数组?

编辑:我认为我的问题与方法本身无关,而是与我班级的代码结构有关。

2 个答案:

答案 0 :(得分:1)

您正在尝试将局部变量转换为实例方法中的数组。这不会起作用,因为局部变量是声明它们的方法或构造函数的本地变量。

您需要执行以下操作之一:

  • 声明字段private List<Animal> animals = new ArrayList<Animal>();并删除animals本地变量或
  • 声明一个数组字段private Animal[] animalArray,并在animals本地后立即指定它;然后getter将返回aninalsArray

答案 1 :(得分:-1)

使用此

public static Animal[] toArray(ArrayList<Animal> animals){
    return animals == null ? null : animals.toArray(new Animal[animals.size()]);
}