Ошибка java.lang.NullPointerException, при чтении пустого списка

149
27 января 2022, 07:00
>код из одного класса
try {
     CFG.getDeploymentArchitecture().getApplicationSystems().forEach(appSys -> {
            if (appSys.getGitConfig() == null) {
                appSys.setGitConfig(new GitConfig());
            }                
             verticalLayout.addComponent(createGitSettingsPanel(
             "Репозиторий прикладной системы " + appSys.getName(),
              appSys.getName(),
              getGitConfig(),
              resourceBundle));
            });
        } catch (Exception e) {
            LOGGER.severe(e.getMessage());
            Notification.show("Какие-то проблемы :" + e, Notification.Type.ERROR_MESSAGE);
            LOGGER.severe(e.toString());
     }

> вот метод из другого класса, который я вызываю
   private List<AppSystem> applicationSystems;
public List<AppSystem> getApplicationSystems() {
        applicationSystems = Collections.EMPTY_LIST;
        if (applicationSystems == null) {
            applicationSystems = new ArrayList<>();
        }
        return applicationSystems;
    }

почему возникает ошибка? Collections.EMPTY_LIST; это же должно ее предотвратить

Answer 1

На самом деле, applicationSystems = Collections.EMPTY_LIST; при каждом вызове метода getApplicationSystems() будет присваивать значение неизменяемого пустого списка полю applicationSystems. Скорее всего эта строчка лишняя.

А NPE ошибка падает из-за того, что либо CFG , либо СFG.getDeploymentArchitecture() возвращают null. Попробуй поставить debug на этой строчке и посмотреть какие значения у них.

READ ALSO
Сделать текст шириной с родительский элемент динамического размера

Сделать текст шириной с родительский элемент динамического размера

У меня есть элемент динамического размера (inline)В нём есть несколько элементов, одним из которых является текст

145
Проблема с компиляцией в среде Code Blocks

Проблема с компиляцией в среде Code Blocks

Code Blocks не компилирует файл, в пути к которому содержатся русские символыВыдаёт ошибку:

97
Некорректно работает GetPixel

Некорректно работает GetPixel

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

97
Сортировка связанного списка

Сортировка связанного списка

Реализовал простой связанный список и несколько функций для вставки, получения и сортировки его элементовНо с последней возникли проблемы...

115