Comment convertir un objet String en objet Boolean ?

Comment convertir un objet String en objet Boolean ?

Solution

Essayez (en fonction du type de résultat que vous souhaitez) :

Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");

Avantage :

  • Boolean : cela ne crée pas de nouvelles instances de Boolean, donc les performances sont meilleures (et moins de ramassage de déchets). Elle réutilise les deux instances de Boolean.TRUE ou Boolean.FALSE.
  • booléen : aucune instance n'est nécessaire, vous utilisez le type primitif.

La documentation officielle se trouve dans la [Javadoc][1].


MISE À JOUR :

L'Autoboxing pourrait également être utilisé, mais il a un coût en termes de performance.
Je suggère de ne l'utiliser que lorsque vous auriez à faire un lancer vous-même, et non lorsque le lancer peut être évité.

[1] : http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html

Commentaires (4)

Vous devez être prudent lorsque vous utilisez Boolean.valueOf(string) ou Boolean.parseBoolean(string). La raison en est que ces méthodes renvoient toujours false si la chaîne n'est pas égale à "true&quot ; (la casse est ignorée).

Par exemple :

Boolean.valueOf("YES") -> false

En raison de ce comportement, je recommanderais d'ajouter un mécanisme permettant de s'assurer que la chaîne qui doit être traduite en booléen suit un format spécifique.

Par exemple :

if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
    Boolean.valueOf(string)
    // do something   
} else {
    // throw some exception
}
Commentaires (3)
Boolean b = Boolean.valueOf(string);

La valeur de b est vraie si la chaîne n'est pas nulle et égale à true (en ignorant la casse).

Commentaires (0)