1

PersistentStore.getPersistentObjectnull を返しますか?

PersistentStore からオブジェクトを取得するためにランダム キーを使用しています

persist = PersistentStore.getPersistentObject( KEY );

署名されたコードをデバイス (BB OS 5.0 Bold 8900) に取得すると、シミュレータ (OS 5) で正常に動作します。

何らかの理由で、これは例外なく null を返します。その後、PersistentStore/persist で呼び出した API は、persist が null の場合でも例外なく null を返します。

これがEclipseデバッガーの問題かどうかはわかりませんが、デバッガーはオブジェクトがnullであることを示していますが。コードに適用された Null チェックが失敗したようです。つまり、コードはこれらのオブジェクトを null ではないと見なします。ふう!!!これはどのように可能ですか?

このコードでは、persist が null として表示されます。ただし、コードの null チェックは失敗します。

コードの後半で、orderedkeys にアクセスしようとすると、これらは再び null になります!!! この問題に 2 日間取り組んできました。

persist = PersistentStore.getPersistentObject( KEY );
persistOrderedKeys = PersistentStore.getPersistentObject(KEY_ORDERED_KEYS);
safetyTable = (Hashtable)persist.getContents();
orderedKeys = (Vector)persistOrderedKeys.getContents();
if (safetyTable == null)
{
    safetyTable = new Hashtable();
    persist.setContents(safetyTable);
    persist.commit();
}
if (orderedKeys==null)
{
    orderedKeys=new Vector();
    if (safetyTable.size() > 0)
    {
        Enumeration addressKeys = safetyTable.keys();
        while(addressKeys.hasMoreElements())
        {
            orderedKeys.addElement((String)addressKeys.nextElement());
        }
    }
    persistOrderedKeys.setContents(orderedKeys);
    persistOrderedKeys.commit();
}
4

0 に答える 0