【发布时间】:2016-03-28 09:48:38
【问题描述】:
为什么我无法访问Device 的id 属性?
final List<Device> devicesList = jsonFileHandlerDevice.getList();
ConcurrentMap<Integer, Device> map =
devicesList.stream()
.collect(Collectors.toMap(item -> item.id, item -> item));
在哪里
public class Device {
public MobileOs mobileOs;
public Integer id;
public Device() {
}
public Device(MobileOs mobileOs, double osVersion, int allocatedPort, Integer id, String uuid) {
this.mobileOs = mobileOs;
this.id = id;
}
}
看这里:
【问题讨论】:
-
我想您可能收到了误导性的错误信息。我相信当收集器返回的类型是
Map<Integer, Device>时,实际的错误是使用ConcurrentMap<Integer, Device>类型。如果您希望返回的Map是ConcurrentMap,则必须使用接受供应商的toMap变体(确定要返回的 Map 的类型)。 -
查看我添加的截图
-
错误信息是什么?
-
我就是无法访问成员“id”
-
@EladBenda 这可能是您的 IDE 的错误。尝试将
map的类型更改为Map,看看错误是否消失。
标签: java list dictionary lambda java-stream