java, объявление HashMap в классе (решено)
Решаю тестовую задачку по java. В задачке нужно создать класс NameSurferDataBase для считывания файла в базу и выдачи инфы по конкретному юзеру. С чтением файла проблем не возникает, файл содержит строки вида
Вася 10 20 30 40
Петя 50 40 50 40
Было решено выделять имя юзера и грузить в HashMap две строки — имя (как ключ) и остальную чать строки (как value).
HashMap объявляется за пределами всех методов
private HashMap contents;
и инициализируется в main и там же загружается с файла.
contents = new HashMap();
для выдачи инфы по конкретному юзеру написан другой метод который валит всю программу при вызове проверки существования ключа
private String FindmeName(String name) {
boolean CheckName = contents.containsKey(name);
....
}
строка contents.containsKey(name) в FindmeName валит всю программу.
Если же инициализировать HashMap за пределами всех методов — то все работает. тоесть вместо
private HashMap contents;
написать
private HashMap contents= new HashMap();
и в main сразу грузить в нее данные — то все работает.
помогите понять почему HashMap нада инициализировать за пределами main ???? Уже час ищу — ничего не помогает.
ЗЫ: всем спасибо, ошибка найдена. Один человек даже смог указать номер страницы в книге где как раз описывается такая проблема. Спасибо.
24 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів