Java 无法理解类的数组
下面是一段简短的代码片段:Java 无法理解类的数组,java,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 abstra
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
}
}
somethod ClassA getClassA(){
List classAType=Lists.newArrayList();
//现在classAType在这里加载了一些东西
返回ClassA.load(classAType.toArray(新的ClassA.ClassB[classAType.size()]);
}
公共抽象类ClassA{
//建造师
公共静态抽象类B{
//某种方法
}
}
我不理解的部分是return
语句。我想知道ClassA.ClassB[classAType.size()]
意味着什么
new ClassA.ClassB[classAType.size()]
返回大小为classAType.size()的ClassA.ClassB
对象数组
由于ClassAType
是一个使用列表创建的列表。newArrayList()
(列表。newArrayList()
在这里没有定义,所以下一部分是一个假设),ClassAType.size()
是0。它正在设置数组的大小。但是它将是0,因为您从未在arraylist中放入任何内容。代码没有太多意义…方法首先使用Lists.newArrayList()返回的ClassA.ClassB
对象创建一个列表。然后,它通过调用静态方法ClassA.load()
返回ClassA
,并传递一个参数:类型为ClassA.ClassB
的空数组,其大小与classAType
相同
这段代码:
classAType.toArray(new ClassA.ClassB[classAType.size()])
可能看起来有点复杂,但它只是创建了一个包含classAType
列表中所有元素的数组。它返回ClassA.load
返回的方法。load
返回类型ClassA
。。。这是getClassA()
方法的返回类型,这是ClassA
@noMAD您已经回答了自己的问题。我希望这些不是您在实际程序中使用的变量名,它们会让很多人难以理解:pI在那里有一条注释,说明我加载了arrayList。我没有在这里展示它,因为它与我的问题无关。