[英]Why the NullPointerException will be thrown here?
这是我的收藏:
Test<v> map = new Test<V>();
但是,当我调用在Test类中重写它的sort方法,并且map1是我在Test类中创建的一个集合时,该集合将保留我添加到map集合中的元素,就会抛出该异常,因为它是针对line 5: a [i] = map.get(new Integer(i));
V[] a = null;
public void sort() {
V temp = null;
for (int i = 0; i < map1.size(); i++) {
a[i] = map1.get(new Integer(i));
if (a[i].getName().hashCode() > a[i + 1].getName().hashCode())
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
V[] a = null;
...
a[i] = ...
有你的问题。 NullPointerException
不仅在尝试对null
调用方法时null
; 尝试通过null
访问数组中的索引将具有相同的效果。 您必须实例化数组,但是由于您使用的是泛型类型,因此在您的情况下这是有问题的。 使用ArrayList
而不是数组。
你永远不赋值给a
。 在最顶层,您可以执行以下操作:
V[] a = null;
但此后再也不给它分配任何东西。 因此,当您这样做时:
a[i] = ...
a为null,因此您将获得null指针异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.