0

这是一个简短的代码片段:

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()]意味着什么

4

3 回答 3

2

getClassA()方法首先创建一个包含ClassA.ClassB由返回的对象的列表Lists.newArrayList()。然后,它ClassA通过调用ClassA.load()传递一个参数的静态方法返回:一个ClassA.ClassBclassAType.

这段代码:

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

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

于 2012-11-05T18:24:02.593 回答
0
new ClassA.ClassB[classAType.size()]

ClassA.ClassB返回大小对象的数组classAType.size()

因为ClassATypeis a Listcreated with Lists.newArrayList()(Lists.newArrayList()这里没有定义所以下一部分是一个假设),classAType.size()是 0。

于 2012-11-05T18:21:42.657 回答
0

它正在设置数组的大小。但是它将为 0,因为您从未在 arraylist 中放置任何内容。代码没有多大意义......

于 2012-11-05T18:22:12.257 回答