Концепция создания статической карты - PullRequest
0 голосов
/ 27 марта 2010

Я хочу создать объект Map, который может потерять значение, только если мы явно удалим его с карты. Я создал объект карты как

public static Map<Long,String> listUser =new HasMap<Long,String>();

но каждый раз, когда создается объект класса, также создается новый экземпляр Map, который содержит нулевое значение. Я хочу создать экземпляр Map, который будет содержать значение, которое мы сохранили ранее.

Ответы [ 3 ]

4 голосов
/ 27 марта 2010

static здесь означает, что объект создается один раз за всю жизнь исполняемой программы (или сервера)

Если вы хотите сохранить его между выполнениями программы, вам потребуется сериализация .

1 голос
/ 27 марта 2010

Ваша проблема в том, что вы создаете новые версии уже существующей переменной. Просто используйте тот, который создан компилятором. Вот быстрый пример:

class Example{
  public static Map<Long,String> listUser =new HashMap<Long,String>();
}

// other file
class Main{
  public static int main(String args[]){
    // Notice how I didn't have to do Example.listUser = new HashMap<etc> here
    Example.listUser.add(12, "Bob");
    Example.listUser.add(50, "George");
  }
}
0 голосов
/ 27 марта 2010

Вы описываете стандартное поведение Карт, они запоминают записи. Я думаю, что проблема у вас в том, что вам нужна только одна карта, а не новые экземпляры. Если вам нужна вторая карта с содержимым первой, посмотрите «конструкторы копирования», но ваш вопрос, как указано, не предполагает, что это было бы хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...