gpt4 book ai didi

java - 最简单的任务是给我 nullPointerException

转载 作者:行者123 更新时间:2023-12-01 16:32:59 24 4
gpt4 key购买 nike

   Collection Class


private E[] data;


@Override
public boolean add(E element) {
//NULL POINTER EXCEPTION HAPPENS ON NEXT LINE
data[actualSize] = element;
actualSize++;

return true;
}

主要

        System.out.println ("Enter the integer to be added:   ");
n = scan.nextInt();

ac.add(n);

我在集合类中的注释行之后遇到空指针异常...为什么?!?!?

编辑:所以我的问题是我需要调整 E[] 数据的大小,如何调整数据的大小?我的老师从来没有告诉过我们这个“E”的生意,她甚至从来没有告诉过我们这个“E”的东西到底叫什么或者有什么用。

最佳答案

WHY?!?!?

因为data还没有初始化。 null 是尚未初始化的实例变量的默认值。

<小时/>

但似乎存在一些更根本的问题:

  • 您似乎有这样的印象:Java 数组会神奇地为自己分配正确的大小……并且它们会增长。事实上,当您分配一个数组时,您的程序必须明确说明它有多少个元素。一旦分配完毕,数组的大小就固定了。

  • 该代码似乎试图实现某种泛型类型(其中 E)是泛型类型参数。

<小时/>

So my issue is I need E[] data to be resized, how do I resize data?

您创建一个具有正确大小的新数组,将元素从旧数组复制到新数组,然后更新 data 变量以指向新数组。检查您的笔记/教科书,了解如何在 Java 中创建新数组。

My teacher never told us about this "E" buisness, she never even told us what the hell this thing "E" is called or used for.

  1. 它很可能是泛型类型参数。

  2. 我很确定她告诉全类同学这件事,或者设置 Java 教科书的相关部分供全类同学阅读。

(假设 E 是泛型类型参数,在没有“未经检查的转换”警告的情况下分配新的 E[] 数组实例有点棘手。也许你的老师已经超越了类(class)当前的能力...)

关于java - 最简单的任务是给我 nullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com