Не ошибка «небезопасная операция»: несовместимые типы Объект не может быть преобразован в запись - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть карта в классе, где я храню ключ String и значение boolean.Затем я возвращаю карту из функции getMap().

public class FacilityMachines {
    private static Map<String, Boolean> map = new HashMap<String, Boolean>();

    public Map getMap(){
         return map;
    }

. В приведенном ниже классе я пытаюсь получить эту карту, а затем сохранить ее во внешнем файле и создать экземпляр * 1007.* Там:

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 и получил те же результаты.

1 Ответ

0 голосов
/ 23 февраля 2019

Вам необходимо вернуть карту в метод getMap () класса FacilityMachines с правильным типом

public class FacilityMachines {
    private static Map<String, Boolean> map = new HashMap<String, Boolean>();

    public Map<String, Boolean> getMap(){
        return map;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...