Мне нужен метод, который извлекает данные из JSON-объекта, проанализированного ранее, как правильный тип. JSONObject (rawdata) расширяет Map, поэтому он выглядит следующим образом:
private <Type> Type getValue(String key, Type def)
{
if (!rawdata.containsKey(key)) return def;
if (!(rawdata.get(key) instanceof Type)) return def;
return (Type) rawdata.get(key);
}
instanceof
, очевидно, генерирует ошибку времени компиляции. Параметр def
является значением по умолчанию, которое возвращается, если ключ недоступен или имеет неправильный тип. Но def
также может быть нулевым, поэтому def.getClass()
не работает.
Любые идеи, как я могу проверить содержимое записи карты для правильного типа?