无法理解类的数组

时间:2012-11-05 18:10:33

标签: java

以下是一段简短的代码段:

someMethod ClassA getClassA() {
  List<ClassA.ClassB> classAType = Lists.newArrayList();
  //Now classAType is loaded with stuff here
  return ClassA.load(classAType.toArray(new ClassA.ClassB[classAType.size()]));
}

public abstract class ClassA {
  //Constructor
  public static abstract class ClassB {
    //some method
  }
}

我不理解的部分是return声明。我想知道ClassA.ClassB[classAType.size()]暗示什么

3 个答案:

答案 0 :(得分:2)

getClassA()方法首先创建一个包含ClassA.ClassB返回的Lists.newArrayList()个对象的列表。然后,它通过调用传递一个参数的静态方法ClassA返回ClassA.load():一个类型为ClassA.ClassB的空数组,其大小与classAType相同。

这段代码:

classAType.toArray(new ClassA.ClassB[classAType.size()])

可能看起来有点复杂,但它只是创建一个包含classAType列表中所有元素的数组。

答案 1 :(得分:0)

new ClassA.ClassB[classAType.size()]

返回大小为ClassA.ClassB

classAType.size()个对象数组

由于ClassAType是使用List创建的Lists.newArrayList()(此处未定义Lists.newArrayList(),因此下一部分是假设),classAType.size()为0。

答案 2 :(得分:0)

它正在设置数组的大小。然而它会是0,因为你从来没有在arraylist中放任何东西。代码没有多大意义......