@Bartar

Почему у меня строки равны null?

Я хотел отобразить в ListView картинку и текст . Но у меня вылетает ошибка java.lang.NullPointerException update item , а если сделать проверку на то что item равен null, то тогда все работает , но не отображает текст .
это метод, где я создаю объект
public ObservableList addUser (){
       // List<Contact> userList = new ArrayList<>();
        ObservableList<Contact> userObservableList = FXCollections.observableArrayList();
        userObservableList.addAll(new Contact(AVATAR,"Megan","Fox",NET_INDICATOR));
        return userObservableList;
    }

вот здесь я отображаю
@Override
    protected void updateItem(Contact contact, boolean empty) {
        super.updateItem(contact, empty);
        if ( empty||contact == null){

            setText(null);
            setGraphic(null);
        }else {
            if (mFXMLLoader == null) {
               
                mFXMLLoader = new FXMLLoader(getClass().getClassLoader().getResource("fxml/contactList.fxml"));
                mFXMLLoader.setController(this);
                try {
                    mFXMLLoader.load();
                } catch (IOException e) {
                    System.out.println(" не загрузил ");
                }
                Image avatar = new Image(contact.getAvatar());

                avatarContactList.setImage(avatar);
                /* TODO Если убрать проверку то вылетает исключение */
                if (contact == null){
                    lblName.setText(contact.getName());
                    lblSense.setText(contact.getSense());
                }
                Image indicator = new Image(contact.getNetStatus());

                netStatusContactList.setImage(indicator);
                setText(null);
                setGraphic(contactList);
            }else {
                System.out.println("Снова  не получилось, LOADER != Null ");
           }
        }
    }
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zelan
Кратко обо мне не получится.
если вылетает здесь:
if (contact == null){
         lblName.setText(contact.getName());
         lblSense.setText(contact.getSense());
 }


то lblName или lblSense, а может быть и оба - не инициализированы и раны null.

Почему? Надо больше кода.
Прикол в том, что эта проверка бессмысленна, если бы контакт был бы равен null, то ты бы обработал этот вариант тут:

if ( empty||contact == null){
            setText(null);
            setGraphic(null);
}

А если ты дошел сюда, то контакт ТОЧНО не равен null.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект