lwuit.io.Storage очищается после закрытия приложения

Я пытаюсь использовать lwuit.io.Storage, он отлично работает во время работы приложения (я могу сделать crud), но после очистки приложения данные очищаются. Я рассмотрел:

  • регистрация моего класса с помощью "Util.register("Car", Car.class);" в методе initVars();
  • реализация интерфейса Externalizable в классе "Car". // метод getObjectId() возвращает "Car"
  • вызов "Storage.init("myProjectName");" в классе MainMIDlet
  • проверка правильности инициализации Storage с помощью Storage.isInitialized() в классе MainMIDlet
  • Я храню свои "автомобильные" объекты с помощью Vector, используя:

    Car c = new Car("ford", 1918);
    
    Vector v = (Vector) Storage.getInstance().readObject("cars");
    if (v == null) {
        v = new Vector();
    }
    v.addElement(c);
    Storage.getInstance().writeObject("cars", v);
    
    Vector test = (Vector) Storage.getInstance().readObject("cars");
    if (test.lastElement() instanceof Car){
       Car c1 = (Car) test.lastElement();
       System.err.println(c1);
    }
    
  • избегая вызова "Storage.getInstance().clearStorage();" в любом месте кода!

  • "Storage.getInstance () listEntries();" возвращает один массив элементов, содержащий строку "cars" (даже после перезапуска приложения).

это мой простой "автомобильный" класс.

Есть идеи, что я здесь упускаю / делаю не так?

заранее спасибо

1 ответ

Решение

Я понял, это была глупая ошибка,

Проблема заключалась в реализации внешнего интерфейса, который я вызывал "Util.writeUTF (name);" в методе externalize() и пытается прочитать его с помощью функцииstream.readUTF () в методе internalize.

просто заменил "Util.writeUTF (имя)" на "поток.writeUTF (имя)".

и это сработало.

Другие вопросы по тегам