У меня есть SortedSet, который используется в качестве параметра в ObservableArrayListJava не ObservableArrayList обновляется при добавлении к SortedSet
public class MyListImpl
{
SortedSet<Foto> fotos;
ObservableList<Foto> observableFotos;
public VerzamelingLijst() {
fotos = new TreeSet<>();
observableFotos = FXCollections.observableArrayList(fotos);
}
@Override
public boolean add(Foto object) {
try {
return fotos.add(object);
} catch (NullPointerException e) {
return false;
}
}
@Override
public ObservableList<Foto> getReadOnlyList() {
return observableFotos;
}
}
В моем UnitTest проверить, есть ли ObservableList возвращается, и если элемент добавляются при использовании метода add().
@Test
public void testGetReadOnlyList() {
ObservableList<Foto> result = instance.getReadOnlyList();
assertThat(result, instanceOf(ObservableList.class));
instance.add(foto1);
assertFalse(result.isEmpty());
}
Когда я запускаю этот метод испытания, assertFalse терпит неудачу, потому что foto1 не добавляется к ObservableList, но когда я первый добавить Foto1, а затем получить ObservableList, то assertFalse успешно.
Это мое предположение, что содержимое ObservableList обновляется, когда объект добавляется в контейнер, который был передан как параметр.
Что здесь происходит и могу ли я сделать, чтобы это сработало?
Если вы зарегистрируете прослушиватель на наблюдаемыхFotos, он будет извещен, если вы что-то сделаете для наблюдаемыхFotos. – Buhb