我在一个类中有一个Map,其中存储了一个String
键和一个boolean
值。然后,我从函数getMap()
返回地图。
public class FacilityMachines {
private static Map<String, Boolean> map = new HashMap<String, Boolean>();
public Map getMap(){
return map;
}
在下面的类中,我试图获取该映射,然后将其保存到外部文件中,还在那里实例化FacilityMachines
:
public class WriteFile {
FacilityMachines fm = new FacilityMachines();
private Map<String, Boolean> m = new HashMap<String, Boolean>();
}
在WriteFile
中,我试图将地图解析为新的HashMap:
public void saveFacilityInfo() {
for (Map.Entry<String, Boolean> j: fm.getMap().entrySet()){
String s = j.getKey();
boolean b = j.getValue();
oStream.println(i + ": " + s + " = " + b + ". ");
}
}
oStream
只是我的PrintWriter
的变量。
以上内容会产生Object cannot be converted to Entry<String, Boolean>
错误。
如果我将saveFacilityInfo
的方法签名更改为saveFacilityInfo(FacilityMachines fm)
,然后使用fm
变量尝试在行for (Map.Entry<String, Boolean> j: fm.getMap().entrySet())
处获取地图,那么我得到一个cannot find symbol
界面上的所有功能上的Entry
:entrySet()
,getKey()
和getValue()
。
在有人问之前,我已经导入了HashMap
和Map
,并且还尝试仅使用import java.util.*;
来导入所有内容,以防万一。
我还尝试从FacilityMachines
扩展WriteFile
并获得相同的结果。
答案 0 :(得分:2)
您需要使用正确的类型通过FacilityMachines类的getMap()方法返回地图
public class FacilityMachines {
private static Map<String, Boolean> map = new HashMap<String, Boolean>();
public Map<String, Boolean> getMap(){
return map;
}
}