Не удается получить входные данные HashMap другим методом - PullRequest
0 голосов
/ 02 апреля 2011

У меня небольшая проблема, которую я не могу понять.

У меня есть суперкласс (SetupFunctions), который я использовал в своем HashMap ->

public HashMap<Integer, SetupFunctions> map =  new HashMap<Integer, SetupFunctions>();

И все остальные классы расширяют это SetupFunction. Мне нужно сделать как 160 методов, которые извлекают уникальные данные, и мне нужно хранить эти данные в одном месте для последующей проверки (это автоматический тест). Вот почему у меня есть тип SetupFuncition в HashMap.

Итак, я создаю экземпляр класса с помощью конструктора, а затем добавляю его в hashmap:

MyClass m = new MyClass (car1, var2, var3, var4, var5);
map.put(getCenarioID(), m);    

В этом же методе я добавил sysout, чтобы посмотреть, что происходит:

System.out.println(map.containsKey(1));
System.out.println(map.size());

Как и ожидалось, он печатает True и 1 ... Но когда я покидаю этот метод (конец выполнения метода) и возвращаюсь к основному методу, тот же sysout выводит False и 0.

Я хочу знать, почему мой hashmap пуст или сбрасывается ... Это не должно происходить ... Я прав?

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

Map статический или динамический доступ?Это единственный способ, которым ваш главный может получить к нему доступ.Убедитесь, что нет повторяющихся переменных Map, которые могли бы сбить с толку компилятор.

Если бы вы могли опубликовать код здесь, это было бы лучше.

1 голос
/ 02 апреля 2011

Трудно сказать, что на самом деле происходит, используя предоставленную информацию.Но, похоже, вы, вероятно, используете две разные HashMap с именем Map, одну внутри метода, а другую снаружи.

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

...