Codenameone首选项nullpointer

时间:2014-04-01 14:09:50

标签: java preferences codenameone

因此,根据我对Preferences api的理解,我可以使用preferences.set(String,String)保存带有唯一值的字符串/ int / etc作为名称。

但是当我这样做时,为什么我会得到一个Hastable nullpointer:

private Preferences pref;
private String prefString, hold;
...

pref.set(prefString, hold);

3 个答案:

答案 0 :(得分:4)

private Preferences pref;
private String prefString, hold;

您有declared pref,但您还没有initialized。这就是为什么

pref.set(prefString, hold);

抛出NullPointerException,因为null没有名为set的函数。 Null什么都没有。 Null 没什么。

通常情况下,我要说你需要用

之类的东西来初始化pref
pref = new Preferences();

但是,根据codenameone API for Preferences,它的所有函数都是静态的,应该以这种方式调用:

Preferences.set(prefString, hold);

因此,它的声明行不应该在那里开始。


如果

Preferences.set(prefString, hold);

仍然会引发NullPointerException,这可能是因为'prefString'也是null

答案 1 :(得分:1)

请确保使用实际对象初始化参考“pref”。当您尝试对空的对象进行方法调用时,通常会出现空指针。如果您在一行中看到空指针,请检查正在调用的引用:

String a = null
a.equals(someOtherString);
你知道吗?正在调用一个方法,它抛出空指针,这意味着a必须为null。

答案 2 :(得分:0)

您将null传递给密钥或存储数据的值。首选项不接受空值。要删除空值,您需要明确删除它。