Comment obtenir la valeur Booléenne de l'Objet

J'ai essayé différentes manières de résoudre ce problème, mais je ne suis pas en mesure de le réparer. J'essaie d'obtenir la valeur Booléenne d'une Objet passée à l'intérieur de cette méthode à une case à cocher:

public boolean onPreferenceChange(Preference preference, Object newValue) 
{
    final String key = preference.getKey();
    referenceKey=key;
    Boolean changedValue=!(((Boolean)newValue).booleanValue()); //ClassCastException occurs here
}

J'obtiens:

java.lang.ClassCastException: java.lang.La chaîne ne peut pas être lancé à java.lang.Boolean

  • Vous êtes d'abord en supposant newValue est de type Booléen. Vous pouvez utiliser instanceof pour vérifier le type de newValue. Si il est une valeur booléenne, autounboxing, vous n'aurez aucun problème. Si c'est une chaîne, vous pouvez comparer (ignorant la casse) pour les valeurs "true", "false", puis créer les booléens représentation.
InformationsquelleAutor David Prun | 2012-05-17