为什么我无法访问Device
的id
属性?为什么在使用Collectors.toMap时无法访问类型字段?
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'时,我相信实际的错误是使用'ConcurrentMap '类型。如果你希望返回的'Map'是一个'ConcurrentMap',你必须使用'toMap'变体来接受一个供应商(它决定了要返回的映射的类型)。 –
Eran
看我添加的截图 –
什么是错误信息? –