Я пытаюсь сохранить набор объектов в ArrayList и получить к ним доступ в вспомогательном классе. Я использую Vaadin и навигатор просмотра для навигации по одному из представлений, которые берут ввод пользователя и переходят к другому представлению, которое отображает некоторые из них на графике. Представления - это вспомогательные классы. ArrayList из этих объектов был вне классов-помощников, и я попытался изменить модификаторы ArrayList (я пробовал статические и окончательные), и я попытался ссылаться на переменную изнутри вспомогательных классов, используя общее имя переменной, а также OuterClass.variableName. Причина, по которой я храню его как переменную, а не в базе данных (как представляется, является нормой для Vaadin CRUD), заключается в том, что у моего объекта есть списки других объектов внутри него, и я не мог понять, как получить гибкий ввод пользовательский интерфейс или подходящий контейнер для него (я не работал с Java в течение многих лет, и я новичок в vaadin). Я должен добавить, что нет синтаксических ошибок, но ArrayList всегда пуст.
По сути, проблема, с которой я сталкиваюсь, заключается в том, что я не могу создать объект в одном представлении класса-помощника (объект, сделанный из пользовательского ввода), сохранить его и прочитать его из другого класса вспомогательного класса (чтобы отобразить данные графически).
У вас есть основной класс, который расширяет класс пользовательского интерфейса. Здесь вы можете добавлять свойства для хранения структур данных для каждого пользователя/экземпляра.
Вы можете получить доступ к классу пользовательского интерфейса практически из любого места вашего приложения vaadin. Через UI.getInstance() (и приведение к вашему основному классу) у вас есть доступ ко всему этому.
Другое тогда ответ выше Вы можете использовать атрибуты сеанса Vaadin UI.
UI.getCurrent().getSession().setAttribute("button", new Button("Button"));
Button b = (Button) UI.getCurrent().getSession().getAttribute("button");
Другим возможным ответом являются, например, события - NavigateToViewEvent, который отправляет данные в выбранное представление.