为什么 List.toArray() 返回一个 Object 数组?

Arn*_*aud 5 java collections

可能重复:
为什么 List<String>.toArray() 返回 Object[] 而不是 String[]?如何解决这个问题?

请参阅此代码示例:

    List<String> list = new ArrayList<String>();
    list.add("hello");
    list.add("world");
    Object [] array = list.toArray();
Run Code Online (Sandbox Code Playgroud)

为什么该方法toArray()返回一个数组Object?其他List方法如get(),remove()能够返回列表中对象的类型。

Fra*_*aro 0

我相信返回 Object 是为了通用,它很可能必须处理内存分配问题。系统不必知道您的确切类型即可分配对象数组。使用 get 和 remove 不会遇到这种情况,因为它只返回一项。

但我会赞成你的问题,希望有人能确认我的答案或纠正我。