У меня есть HashMap, который заполняется из файла JSON. Значения в паре ключ-значение могут быть двух разных типов: String или другой пары ключ-значение.Определение типа, используемого в HashMap
Например:
HashMap<String,Object> hashMap = new Map();
Файл JSON выглядит немного что-то вроде этого:
"custom": {
"mappedReference": {"source": "someMappedReference"},
"somethingElse": "some literal"
}
}
Позже после заполнения HashMap, когда я переборе мне нужно проверить, если значение имеет тип HashMap или String. Я пробовал несколько способов, но, похоже, я не могу получить тип объекта на карте.
for(Map.Entry<String,Object> m : hashMap.entrySet())
{
final String key = m.getKey();
final Object value = m.getValue();
if(value instanceof Map<String,String>)
{
//get key and value of the inner key-value pair...
}
else
{
//it's just a string and do what I need with a String.
}
}
Любые идеи о том, как я могу получить тип данных с карты? Заранее спасибо
'' map.get (ключ) .getClass() '' http://stackoverflow.com/questions/8029618/get-variable-type-in-a-hashmap-in-java –
ключ. GetClass(); –
Карта не имеет метаданных. Вы можете узнать класс ключа и значение определенной записи, но не общие параметры. –