Ошибка в работе с LinkedList

200
04 декабря 2017, 16:59

Есть класс:

class CurrentMessage
{
    CurrentMessage(String from_login,
                   String from_public_key,
                   String from_enc,
                   String from_signature,
                   String who_login,
                   String who_public_key,
                   String who_enc,
                   String who_signature,
                   String date)
    {
        this.from_login = from_login;
        this.from_public_key = from_public_key;
        this.from_enc = from_enc;
        this.from_signature = from_signature;
        this.who_login = who_login;
        this.who_public_key = who_public_key;
        this.who_enc = who_enc;
        this.who_signature = who_signature;
        this.date = date;
    }
    public String from_login;
    public String from_public_key;
    public String from_enc;
    public String from_signature;
    public String who_login;
    public String who_public_key;
    public String who_enc;
    public String who_signature;
    public String date;
}

Далее добавляю элемент в список:

...
LinkedList<CurrentMessage> message_list;                                 
message_list.addFirst(new CurrentMessage(from_login,
                                         from_open_key,
                                         message_enc_from_key,
                                         signature_from,
                                         who_login,
                                         who_open_key,
                                         message_enc_who_key,
                                         signature_who,
                                         date_time));
Log.d("LIST123", Integer.toString(message_list.size()));

При добавлении нового элемента в двунаправленных списков вылетает ошибка:

ERRORjava.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.LinkedList.addFirst(java.lang.Object)' on a null object reference

Что я делаю не так? В Java начинающий.

Answer 1

вы не иницировали список message_list. вы долны иницировать список перед тем, как начинать добавлять данные. Поэтому, нужно писать так

LinkedList<CurrentMessage> message_list = new LinkedList();

p.s. Не желательно в конструктор передавать много параметров. Посмотрите на шаблон билдер

READ ALSO
Пересоздание ViewModel при повороте экрана

Пересоздание ViewModel при повороте экрана

Недавно Google выпустили Android Architecture Components, в первой же строке описания сказано:

247
Чтение и обработка CSV в многопоточном режиме

Чтение и обработка CSV в многопоточном режиме

Я хочу считать CSV файл с большим количеством строк и обработать эти строки в многопоточном режимеДелаю так:

201
Java. Число сочетаний из N по М

Java. Число сочетаний из N по М

Есть задача: Нужно реализовать функцию, которая будет искать число сочетаний из N по M, только с определенными условиями: Функция должна возвращать...

280
Вывод текста в цикле else.Java

Вывод текста в цикле else.Java

При создании маленького консольного калькулятора

239