因此,根据我对 Preferences api 的理解,我可以使用preferences.set(String, String) 保存一个具有唯一值作为名称的字符串/int/等。
但是当我这样做时为什么会得到一个 Hastable 空指针:
private Preferences pref;
private String prefString, hold;
...
pref.set(prefString, hold);
最佳答案
private Preferences pref;
private String prefString, hold;
您有declared pref
,但您还没有 initialized它。这就是为什么
pref.set(prefString, hold);
抛出一个NullPointerException
,因为null
没有名为set
的函数。空什么也没有。空就是什么都没有。
通常,我会说你需要用类似的东西初始化 pref
pref = new Preferences();
但是,根据 codenameone API for Preferences ,它的所有函数都是静态的,应该这样调用:
Preferences.set(prefString, hold);
因此,它的声明行一开始就不应该存在。
<小时/>如果
Preferences.set(prefString, hold);
仍然抛出NullPointerException
,这可能是因为“prefString”也是null
。
关于java - Codenameone 偏好空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788439/