0
例如:为什么List <T> .toArray()返回的是通用Object []而不是T []?
List<String> items = new ArrayList<String>();
String[] aItems = items.toArray(); // type error, because toArray() returns Object[]
我明白,这是事情是这样的,它不能改变。当然我可以将它转换为String [],但我不知道它背后的想法是什么?这是Java中的一个“bug”吗,还是有很好的理由?
更好地使用'items.toArray(new String [items.size()])'来防止分配额外的数组对象。如果数组大小等于'List'大小,那么'items'元素将被复制到给定的数组,而方法将返回该数组,而不是新创建的数组。 – Lennier
我还是不明白为什么不能列表().toArray()return T []?我不明白如何能够返回其他任何东西。 –
nagylzs
哦,我现在看到。你不能这样宣布。那么,我不认为这是一个很好的理由。我把它看作语言障碍。 – nagylzs