У меня есть проблема, которую я не могу решить:
Я получаю некоторые данные из базы данных пожарной базы.
Все работает плавно, за исключением случаев, когда я дохожу до столбца title,
поскольку столбец заголовка представляет собой дерево json и в нем есть строки значений ключей, поэтому здесь необходимо написать новую логику.
Что я пробовал
Создайте для него запись и сохраните ее в хеш-карте внутри моего класса ConfigItem который я создал.
Я получаю данные нормально, но не знаю, кому их обрабатывать.
Когда я дошел до третьей строки в цикле while, я получилjava.lang.ClassCastException: java.util.HashMap$EntrySet cannot be cast to java.util.Map$Entry
Чего мне здесь не хватает?
public class DataMappingConfig implements DataMappingStrategy {
@Override
public Object mapData(HashMap data ) {
Log.i("key set " , data.keySet().toString() + " key set ") ;
HashMap mpair =null ;
HashMap titlepairs = null ;
for (String key : data.keySet()) {
if (key.equals(KEY_TITLE)) {
final Iterator iterator = data.entrySet().iterator();
while (iterator.hasNext()){
mpair = new HashMap() ;
Map.Entry pair = (Map.Entry) data.entrySet() ;
HashMap titleMap = (HashMap) pair.getValue();
titlepairs = new HashMap();;
}
}
}
ConfigItem conf = new ConfigItem();
if (data.containsKey(KEY_LOGIN)) {
conf.setLogin((Boolean) data.get(KEY_LOGIN)); // note the import above
}
if (data.containsKey(KEY_ICON)) {
conf.setIcon((String) data.get(KEY_ICON));
}
if (data.containsKey(KEY_MAIN_SCREEN_ORDER)) {
conf.setNum(safeLongToInt((Long) data.get(KEY_MAIN_SCREEN_ORDER)));
}
if (data.containsKey(KEY_MODE)) {
String modeValue = (String) data.get(KEY_MODE);
if (modeValue.equals(VALUE_MODE_EMERGENCY)) {
conf.setEmenrgency(true);
} else if (modeValue.equals(VALUE_MODE_ROUTINE)) {
conf.setRoutine(true);
}
conf.setMode((String) data.get(KEY_MODE));
}
if (data.containsKey(KEY_STATUS)) {
conf.setStatus((String) data.get(KEY_STATUS));
}
if (data.containsKey(KEY_SHOW_DATE)) {
try {
conf.setShowDate((Boolean) data.get(KEY_SHOW_DATE));
} catch (IllegalArgumentException e) {
e.printStackTrace();
Log.i("ERROR", "" + e.getLocalizedMessage());
}
}
Log.i("Data Map config ", "conf item = " + conf.toString() + "\n");
return conf;
}
}
Подробнее здесь: https://stackoverflow.com/questions/445 ... l-mapentry
Java.lang.ClassCastException нельзя привести к java.util.Map$Entry ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение