добавление элемента в SimpleListProperty

139
13 января 2021, 15:50

у меня есть такая строка

    private ListProperty<String> nameLink = new SimpleListProperty<>();

Я хочу в конструкторе добавить пару элементов для проверки работоспособности программы, но с этим возникли проблемы, как я понимаю = new SimpleListProperty<>() создает мне объект типа именно SimpleListProperty<>, но в нем методов добавления элементов нет, так же я могу воспользоваться методами ListProperty<>, и там я нашел

public void setValue(ObservableList<E> v) {
    set(v);
}

Как я понимаю, используя этот метод, я должен использовать коллекцию типа ObservableList, но я по факту хочу просто добавить элемент типа String. Так же среда мне подсказывает метод - add(); я передаю туда к примеру "qwe", на что мне выдает огромное исключение, так вот, как в мою коллекцию передавать обычную строку?

Answer 1

Нужно инициализировать каким-либо списком в конструкторе new SimpleListProperty<>(FXCollections.observableArrayList());

SimpleListProperty - это НЕ совсем список, а обертка над ObservableList, но при этом реализующая его интерфейс.

nameLink.get() - вернет список, в который можно добавлять элементы (переданный в конструкторе). nameLink.set(...) - заменит список внутри свойства nameLink, но обычно это не то что нужно.

Также доступны обычные методы add, remove и т.д., на реализацию можно посмотреть в классе javafx.beans.binding.ListExpression, но если в SimpleListProperty не передать свой список, то будет использоваться значение по-умолчанию - FXCollections.emptyObservableList() - которое не допускает изменений (будут бросаться исключения)

READ ALSO
Hibernate и уровни изоляциии транзакций

Hibernate и уровни изоляциии транзакций

Есть два тестовых метода:

131
Не могу получить доступ к файлу. Android Studio

Не могу получить доступ к файлу. Android Studio

Я получаю путь к файлу, сохраняю в переменную(Путь корректный, я проверял)

137
Правильное объявление коллекций

Правильное объявление коллекций

Почему для этих реализаций пишут вот так, а не вот так:

132
Ошибка startForeground в Android 8.1

Ошибка startForeground в Android 8.1

Вот такая проблема: показывается список песен - нажимаю на на любую, для воспроизведения, показывает ошибку androidapp

111