NullPointerException на карте в Java. Что случилось? - PullRequest
1 голос
/ 20 января 2012

Я пытаюсь загрузить файл на карту с помощью метода, описанного ниже:

private static Map<String,Integer> indexVocabulary;
public static Map<String,Integer> getVocabularyFromFile() throws IOException
{
    FileInputStream fstream = new FileInputStream(VOCABULARY_FILE);
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));      
    String line;
    while( (line = br.readLine()) != null )
    {
        LOG.debug(line);
        String[] kv = line.split(" ");
        LOG.debug(kv[0]);
        LOG.debug(Integer.toString(Integer.parseInt(kv[1])));


        indexVocabulary.put(kv[0], Integer.parseInt(kv[1]));
    }
    return indexVocabulary;
}

Я вижу вывод из line 'также из kv[0],kv[1] и Integer.parseInt(kv[1]) Однако я получаюNullPointerException на линии indexVocabulary.put(kv[0], Integer.parseInt(kv[1])); Кто-нибудь знает, что не так с этим методом?

Ответы [ 5 ]

8 голосов
/ 20 января 2012

Вы не инициализируете indexVocabulary, поэтому это null.

Изменить

private static Map<String,Integer> indexVocabulary;

до

private static Map<String,Integer> indexVocabulary = new HashMap<String,Integer>();
4 голосов
/ 20 января 2012

Вы не инициализировали свою Карту, это просто пустая переменная. Вам нужно создать карту, например, вы можете сделать:

indexVocabulary = new HashMap<String,Integer>();
3 голосов
/ 20 января 2012

Вы не создали свою карту.Проще говоря,

indexVocabulary = new HashMap<String,Integer>();

3 голосов
/ 20 января 2012

Вы не назначаете никакой объект для indexVocabulary, поэтому он нулевой.Просто объявите это так:

private static Map<String,Integer> indexVocabulary = new HashMap<String,Integer>;
3 голосов
/ 20 января 2012

Вы забыли инициализировать indexVocabulary.

Просто сделай:

indexVocabulary = new HashMap<String, Integer>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...