gpt4 book ai didi

java - lambda foreach 添加到 map 不起作用

转载 作者:行者123 更新时间:2023-11-29 07:43:17 25 4
gpt4 key购买 nike

我得到了以下变量

List<Pruefvorschrift> listP = new ArrayList<Pruefvorschrift>();
ObservableMap<TestDevice,List<Pruefvorschrift>> testDev = FXCollections.emptyObservableMap();

在一个函数中,我想使用 lambda 表达式填充 testDev

//first call REST service and get data
List<TestDevice> test_dev = call.getTestDevice("");
//now do a foreach to add each entry (as key) to the testDev ObservableMap with a empty List (as value)
test_dev.stream().forEach(td ->{
TestDevice t = td;
testDev.put(t, listP);
});

但我得到的只是一个错误

java.lang.UnsupportedOperationException at java.util.AbstractMap.put(AbstractMap.java:209)

显然是这一行

 testDev.put(t, listP);

也许我误解了新的流 api,但我只想用调用的所有结果(键)和一个空列表(稍后将修改的值)填充可观察映射。有什么帮助吗?谢谢

最佳答案

FXCollections#emptyObservableMap 返回的任何 Map 类型

FXCollections.emptyObservableMap();

不支持put方法。你不能给它添加任何东西。正如 javadoc 所述

Creates and[sic] empty unmodifiable observable list.

这与 lambda 表达式或 Stream api 无关。

关于java - lambda foreach 添加到 map 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28032370/

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