У меня есть проблема, которую я не могу решить:
Я получаю некоторые данные из базы данных пожарной базы.
Все работает плавно, за исключением случаев, когда я дохожу до столбца 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
Форум для тех, кто программирует под Android
-
Anonymous
1773079675
Anonymous
У меня есть проблема, которую я не могу решить:
Я получаю некоторые данные из базы данных пожарной базы.
Все работает плавно, за исключением случаев, когда я дохожу до столбца [b]title[/b]
потому что столбец заголовка представляет собой дерево json и имеет строки значений ключей, поэтому здесь необходимо написать новую логику.
[b]Что я пробовал до сих пор[/b]
Создайте для него запись и сохраните ее в хеш-карте внутри моего созданного мной класса 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;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/44542849/java-lang-classcastexception-cannot-be-cast-to-java-util-mapentry[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия