Mat*_*zuk 0 java nullpointerexception
Collection Class
private E[] data;
@Override
public boolean add(E element) {
//NULL POINTER EXCEPTION HAPPENS ON NEXT LINE
data[actualSize] = element;
actualSize++;
return true;
}
Run Code Online (Sandbox Code Playgroud)
主要
System.out.println ("Enter the integer to be added: ");
n = scan.nextInt();
ac.add(n);
Run Code Online (Sandbox Code Playgroud)
我在集合类中的注释行之后得到一个空指针异常....为什么?!?!?
编辑:所以我的问题是我需要调整大小的E []数据,如何调整数据大小?我的老师从来没有告诉我们这个"E"的商业,她甚至从未告诉过我们这个东西"E"到底叫什么.
为什么?!?!?
因为data还没有初始化.这null是尚未初始化的实例变量的默认值.
但似乎存在一些更基本的问题:
您似乎认为Java数组会以合适的大小神奇地分配自己......并且它们会增长.实际上,当您分配一个数组时,您的程序必须明确说明它有多少个元素.一旦分配,阵列的大小就固定了.
代码似乎是试图实现某种泛型类型(where E)是泛型类型参数.
所以我的问题是我需要调整大小的E []数据,如何调整数据大小?
您创建一个具有正确大小的新数组,将元素从旧元素复制到新元素,并更新data变量以指向新数组.查看有关如何使用Java创建新阵列的说明/教科书.
我的老师从来没有告诉我们这个"E"的商业,她甚至从未告诉过我们这个东西"E"到底叫什么.
它很可能是泛型类型参数.
我很确定她会告诉全班同学,或者设置Java课本的相关部分供课堂阅读.
(假设这E是一个泛型类型参数,分配一个E[]没有"未经检查的转换"警告的新数组实例有点棘手.也许你的教师已经领先于该类目前的能力......)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |