以下是一段简短的代码段:
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()]
暗示什么
答案 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中放任何东西。代码没有多大意义......