【发布时间】:2017-08-15 15:04:26
【问题描述】:
我正在尝试创建一个二维哈希图数组。我使用以下代码执行此操作:
@SuppressWarnings("unchecked")
Map<String, Boolean>[][] arrayBlock3 = (Map <String, Boolean>[][]) new Map[6][6];
但是,当我尝试向数组添加元素时,在运行时,在向数组添加元素的第一行会出现空指针异常。
添加元素的代码是:
arrayBlock3[0][0].put("B", false);
arrayBlock3[0][1].put("G", false);
arrayBlock3[0][2].put("B", false);
arrayBlock3[0][3].put("B", false);
arrayBlock3[0][4].put("G", false);
arrayBlock3[0][5].put("B", false);
错误信息
Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:20)
非常感谢您的帮助,谢谢。
【问题讨论】:
-
什么是
Map?.. -
提示:你认为
arrayBlock3[0][0]的价值是什么,为什么? -
@JonSkeet 我正在尝试为
arrayBlock3[0][0]赋值,这样做会引发空指针异常,但我不确定原因。 -
不,您没有尝试为该数组元素分配值。您正在获取该数组元素的值并在其上调用方法。数组元素的值为null。
-
使用数组时一个好的经验法则是必须分配数组(通常类似于 new a[4])并且必须分配数组中的每个元素(例如 new ArrayList( ))。
标签: java arrays generics hashmap