JavaFx: объединить логические свойства

У меня есть List<BooleanProperty>, как я могу объединить их с or?

Мне нужно что-то вроде:

private BooleanProperty getMergedProperty(List<BooleanProperty> properties){
     return mergeAllWithOr(properties);
}

Or:

private BooleanBinding getMergedBinding(List<BooleanProperty> properties){
     return mergeAllWithOr(properties);
}

mergeAllWithOr означает list.get(0).or(list.get(1)).or(...

Редактировать: это то, что я пробовал, но это работает как and, а не как:

private BooleanProperty getMergedProperty(List<BooleanProperty> properties) {
    BooleanProperty property = new SimpleBooleanProperty();
    properties.forEach(property::bind); // or donesn't work at all.
    return property;
}

Не могли бы вы предложить какое-либо решение?


person Sunflame    schedule 14.09.2017    source источник
comment
Вы можете использовать тот же метод, описанный в этом ответе: stackoverflow.com/questions/46200663/   -  person Itai    schedule 14.09.2017
comment
О, спасибо, наконец-то мне удалось использовать ответ, создав новый SimpleBooleanProperty, затем прокрутить список и привязать элементы к созданному свойству, извините, если это дубликат, но я его не нашел.   -  person Sunflame    schedule 14.09.2017
comment
@sillyfly проблема в том, что .bind работает как and, поэтому проблема все еще присутствует, я не могу найти решение для простой привязки or между ними. Я неправильно понял этот ответ или что я пропустил?   -  person Sunflame    schedule 14.09.2017
comment
@Sunflame Почему бы вам не попробовать это так же, как в связанном вопросе? Решение, которое у вас есть, вообще не будет работать: привязка свойства означает, что свойство имеет то же значение, что и свойство, с которым оно связано. Если вы вызовете bind для свойства, оно удалит все предыдущие привязки. Таким образом, ваш код просто приводит к тому, что свойство привязывается (имеет то же значение, что и) к последнему свойству в списке.   -  person James_D    schedule 14.09.2017
comment
Хорошо, теперь я думаю, что понял, как это работает, сначала я думал немного по-другому, поэтому у меня не работало. Сейчас сделал подобное тому, что вы записали, и работает. Я все еще думаю о том, могу ли я использовать Bindings.createBooleanBinding() вместо new BooleanBinding().   -  person Sunflame    schedule 18.09.2017