PListValue (Object value) { if (value instanceof Map) { //noinspection unchecked return readDict((Map<String, Object>)value); } else if (value instanceof ArrayList) { return readArray((ArrayList<?>)value); } else { return readBasicValue(value); } }