Java泛型在ArrayList.toArray()方法中

12 浏览
0 Comments

Java泛型在ArrayList.toArray()方法中

假设你有一个定义如下的数组列表:

ArrayList someData = new ArrayList<>();

在你的代码中的后面,由于泛型的存在,你可以这样说:

String someLine = someData.get(0);

编译器立即知道它将得到一个字符串。泛型太棒了!然而,以下代码将失败:

String[] arrayOfData = someData.toArray();

toArray() 方法总是返回一个对象数组,而不是定义的泛型数组。为什么get(x) 方法知道它返回的是什么,而toArray() 方法默认为对象呢?

0