我在一个类中有一个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
并得到相同的结果。 最佳答案
您需要使用正确的类型在FacilityMachines类的getMap()方法上返回地图
public class FacilityMachines {
private static Map<String, Boolean> map = new HashMap<String, Boolean>();
public Map<String, Boolean> getMap(){
return map;
}
}