这是我的收藏品:
Test<v> map = new Test<V>();
但是当我调用sort方法时,我在Test类中重写它,并且map1是我在Test类中创建的一个集合,它将保留我添加到map集合的元素,这个异常将被抛出是第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;
}
答案 0 :(得分:10)
V[] a = null;
...
a[i] = ...
有你的问题。尝试在NullPointerException
上调用方法时,不仅会抛出null
;尝试通过null
访问数组中的索引将产生相同的效果。您必须实例化该数组,但在您的情况下这是有问题的,因为您使用的是泛型类型。使用ArrayList
代替数组。
答案 1 :(得分:4)
您从未为a
分配值。在最顶端你做:
V[] a = null;
但在此之后永远不会给它任何东西。所以,当你这样做时:
a[i] = ...
a为null,因此您将获得空指针异常。