java - 调整数组大小时出现空指针异常

标签 java arrays nullpointerexception null

我在“newIndexer[i].index = (int)Double.POSITIVE_INFINITY;”行中有一个 NullPointerException,但我不知道为什么。非常感谢任何帮助。

    public void resizeIndexer(int newKey)
    {   
        if (maxHeap >= newKey)
            return;
        if (newKey > maxHeap){
            Handle[] newIndexer = new Handle[newKey + 1];
            for (int i = 0; i < newKey; i++){
                if (i < maxHeap)
                newIndexer[i] = this.Indexer[i];
                else{
                    System.out.println(i);
                    newIndexer[i].index = (int)Double.POSITIVE_INFINITY;
                    newIndexer[i].status = false;
                }
            }       
            maxHeap = newKey;
            Indexer = newIndexer;
        }
    }

最佳答案

在修改 indexstatus 成员之前,您必须为新数组的每个新索引创建一个新的 Handle 实例:

        for (int i = 0; i < newKey; i++){
            if (i < maxHeap)
                newIndexer[i] = this.Indexer[i];
            else{
                System.out.println(i);
                newIndexer[i] = new Handle ();
                newIndexer[i].index = (int)Double.POSITIVE_INFINITY;
                newIndexer[i].status = false;
            }
        }  

关于java - 调整数组大小时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018842/

相关文章:

java - Android应用程序已停止工作-eclipse

java - Swing 选项条件

java - Python子进程不传递参数

java - 使用 requestPinAppWidget() 放置小部件时如何启动小部件配置

java - ArangoDB:Spring 数据和图形模型支持

php - 替换多维数组中的值

python - Numpy.where 函数没有在数组中找到值......有人知道为什么吗?

java - 使用按钮在 fragment 之间切换

java - 对数组进行快速排序并在 Java 中进行二进制搜索

java - Libgdx box2D 错误