返回一个ArrayList
问题描述:
你好,
我试图附加一个形象,我希望你能够看到它。 我理解所有的方法在那里,除了最后一行:
return (Room[])list.toArray();
的方法应返回的数组与空间对象,从而Room[]
。但围绕Room[]
的括号是什么意思?方法toArray
确保从添加的元素组织的数组?我认为这可能只是return list.toArray();
或不?
答
list.toArray()返回一个Object []的数组,因此您实际上必须将其转换为获取一个Room数组。
编辑:
在java中铸造是你决定到JVM中的对象的类型。在这种情况下,我们有一个通用的Object [],因为我们确实知道该列表中的所有对象都是Room,所以我们可以在该行之前包含“(Room [])”,以强制编译器识别返回的数组作为一组房间。
+0
非常感谢您的评论。因此list最初是Room的ArrayList。然后用list.toArray()返回Object [](不再是ArrayList),然后使用括号(Room [])进行投射,告诉编译器该列表是一个Room数组? – Consuela
不要在文本足够的地方使用图片... – JonK
但是,您的代码是否可以编译?我怀疑是因为对'toArray'方法进行的类型转换不能工作。您需要将房间类型数组传递给toArray方法 – SacJn