不是“不安全操作”错误:不兼容的类型 Object 无法转换为

我在一个存储String键和boolean值的类中有一个 Map。然后,我从函数返回地图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所有函数的a : 、和。EntryentrySet()getKey()getValue()


在有人问之前,我已经导入了HashMapand Map,并且还尝试使用 onlyimport java.util.*;来导入所有内容以防万一。


我也尝试过扩展并FacilityMachines得到WriteFile了相同的结果。


GCT1015
浏览 275回答 1
1回答

茅侃侃

您需要在 FacilityMachines 类的 getMap() 方法上以正确的类型返回地图public class FacilityMachines {&nbsp; &nbsp; private static Map<String, Boolean> map = new HashMap<String, Boolean>();&nbsp; &nbsp; public Map<String, Boolean> getMap(){&nbsp; &nbsp; &nbsp; &nbsp; return map;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java