我正在尝试实现Generic Heap。要插入数据,我必须比较数组的位置。当我把它作为整数时,我能够使用这个
while (heap[getParent(currentItem)] > heap[currentItem]) {
转换为泛型我研究并尝试过这个:
while (heap[getParent(currentItem)].compareTo(heap[currentItem]) < 0) {
这是不成功的,因为它给出了NullPointerException。如何转换代码以正确比较项目?
答案 0 :(得分:0)
您需要使用扩展比较器的泛型类型,例如<T extends Comparable<T>>
而不是<T>
。然后,您将能够使用compareTo
方法比较项目。如果您获得空指针异常,则需要确保您尝试调用compareTo
的对象不应为null。在您的情况下,那将是heap[getParent(currentItem)]
。我建议将heap[getParent(currentItem)]
存储到一个字段中,makins肯定它不是空的。