我正在使用org.eclipse.jetty.util.ajax.JSON解析JSON文本。
但是JSON.parse(string)方法生成的是一个对象,而我需要将其作为Map使用。
在内部,它实际上就是所提到类的一个对象。
但是如何将一个对象强制转换为Map,而不构造一个新的对象或获得未检查的类型转换警告呢?
目前,我只找到了一种不带有未检查类型转换警告的解决方案,但需要构造一个新的Map,实际上这并不是强制转换。
目前,我只找到了一种不带有未检查类型转换警告的解决方案,但需要构造一个新的Map,实际上这并不是强制转换。
private Map<String,Object> getMap(String string) {
HashMap<String,Object> result = new HashMap<>();
Object object = JSON.parse(string);
if (object instanceof Map) {
Map<?,?> map = (Map)(object);
for (Map.Entry<?,?> entry : map.entrySet()) {
String key = entry.getKey().toString();
Object value = entry.getValue();
result.put(key,value);
}
}
return result;
}
有没有一种正确的方式可以进行类型转换,而不会出现未经检查的类型转换警告?
Map<String,Object>
和Map<Integer,Object>
。) - Ted Hopp(object instanceof Map<String,Object>)
,但它不起作用,而(object instanceof Map)
则可以。 - KoichiSenadaString
转换为Object
,但不是从Object
转换为String
。因为每个字符串都是一个对象,但并非每个对象都是一个字符串。 - Ruan Mendes