gpt4 book ai didi

java - 动态添加到 lambda 表达式

转载 作者:行者123 更新时间:2023-11-29 03:16:31 24 4
gpt4 key购买 nike

有什么方法可以动态添加元素,比如在 lambda 表达式中使用 for 循环?

我有当前代码:

FilteredList<List<String>> filteredItems = new FilteredList(data, e -> true);

filteredItems.predicateProperty().bind(
Bindings.createObjectBinding(()
-> li -> li.get(0).contains(filterField.getText()) && li.get(1).contains(filterField2.getText()), filterField.textProperty(), filterField2.textProperty()
)
);

并且我希望能够添加

li.get(x).contains(filterFieldX) 

根据 li 的大小到 lambda 表达式。所以如果 li 的大小是 3,那么 lambda 应该有:

li.get(0).contains(filterField0.getText()) &&
li.get(1).contains(filterField1.getText()) &&
li.get(2).contains(filterField2.getText())

最佳答案

假设您的 filterField 在列表中,当然:

filteredItems.predicateProperty().bind(
Bindings.createObjectBinding(()
-> li -> {
for (int i=0; i<li.size(); i++) {
if (! li.get(i).contains(filterFieldList.get(i).getText())) {
return false ;
}
}
return true ;
},
filterFieldList.stream().map(TextField::textProperty)
.toArray(StringProperty[]::new)));

关于java - 动态添加到 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com