Fonte d'Objet Java en Java Map<String,Object>

Je suis en utilisant org.eclipse.la jetée.util.ajax.JSON pour parser JSON texte.
Mais le JSON.parse(string) méthode produit un Objet et j'en ai besoin que d'une Carte.
En interne, c'est un objet exactement de la catégorie.
Mais comment avez-vous jeté un Objet sur une Carte sans la construction d'un nouveau ou d'obtenir de la décoché fonte d'avertissement?

Actuellement, je n'ai trouvé qu'une solution sans la décoché fonte d'avertissement, mais avec la construction d'une nouvelle Carte, qui est en fait bien sûr pas un casting à tous.

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;
}

Donc, qu'est-il un moyen pour bien lancer sans décoché fonte des avertissements?

la vérification de type avant de conversion de type peut se débarrasser de l'avertissement.
la vérification de type avant n'aide pas
En raison du type d'effacement, vous ne pouvez pas de vérification de type pour un type particulier de générique carte. (Par exemple, vous ne pouvez pas distinguer Map<String,Object> de Map<Integer,Object> à l'aide de la vérification de type.)
J'ai essayé (object instanceof Map<String,Object>) et ça ne fonctionne pas, alors que (object instanceof Map).
vous pouvez vérifier au moins que c'est une Carte. Vous aurez toujours une raw types avertissement.

OriginalL'auteur KoichiSenada | 2012-10-17