自定义集合类时,在重写toArray方法
public <T> T[] toArray(T[] a) {
// if (a.length < size)
// //通过Arrays.copyOf()方法进行拷贝, 长度为size
// return (T[]) Arrays.copyOf(dataArray, size, a.getClass());
// System.arraycopy(dataArray, 0, a, 0, size);
// //如果传入的数组的长度大于list中的元素个数, 将a[size]赋值为null
// if (a.length > size) {
// a[size] = null;
// }
// return a;
for (int i = 0; i < a.length; i++) {
a[i] = (T)dataArray[i];
}
测试发现报错了
原因在于泛型只能包容的是对象类型,而基本类型在java里不属于对象类型。
YockList<Integer> yockList = new YockList<>();
// 测试String类型
// yockList.add("i");
// yockList.add("am");
// yockList.add("Zilatan");
// yockList.add("!");
// 测试integer类型
yockList.add(123);
yockList.add(412323);
yockList.add(12345);
yockList.add(123512323);
Integer[] strArr = yockList.toArray(new Integer[yockList.size()]);
for (Object str : strArr) {
System.out.println(str);
}
问题就解决了!!!