V1r*_*a1y 3 java hashmap static-members
我希望将HashMap作为新类的每个实例的静态成员.然而,每当我尝试.get或输入我的HashMap时,我都会得到一个NullPointerException.救命!?
我正在做:public class EmailAccount {
private static HashMap<String,Integer> name_list;然后name_list.put(last_name, occurences);Even name_list.containsKey(last_name);返回NullPointer.
这来自于之前的一个问题:计算Java中字符串的出现次数
你需要实例化它.
private static Map<String, Integer> name_list = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)
请注意,在地图的变量名称中使用"list"会让人感到困惑.你不想要它是一个name_map或name_occurences?顺便提一下,这种下划线也不适合Java命名约定,但除此之外.
你还需要初始化它,比如
private static HashMap<String, Integer> name_list = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)
当您保留没有初始化的类级别对象字段 - 或任何对象引用时,它默认为null.
虽然你想要一个HashMap似乎很明显,所以它应该只是隐式初始化它,Java不知道你是否想要一个HashMap,或者一个HashMap子类,比如LinkedHashMap
类级基元,就像int可以保持一样,private static int someNumber;并且不会通过访问它来抛出NullPointerException - 但这是因为基元不能为空.Java将为其分配一些默认值(在int情况下为0).
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |