这段内容来自马克·韦斯教授在他的书《Java数据结构和算法分析》中。
public class BinaryHeap<AnyType extends Comparable<? super AnyType>>{
private void enlargeArray( int newSize ){
AnyType [] old = array;
array = (AnyType []) new Comparable[ newSize ];
for( int i = 0; i < old.length; i++ )
array[ i ] = old[ i ];
}
}
我想知道为什么我们要使用接口 Comparable 声明数组,因为我们需要将 Comparable[]
转换成 AnyType[]
?这背后有什么设计理念吗?
Arrays.copyOf
调用确实返回一个真正的T[]
。我认为(T[])
强制转换是不必要的。 - user2357112