Solución:
Acepta solo un valor de cadena de "true"
para representar booleano true
. Lo mejor que puedes hacer es
boolean uses_votes = "1".equals(o.get("uses_votes"));
O si el Map
en realidad representa una “entidad”, creo que un Javabean es mucho mejor. O si representa ajustes de configuración, es posible que desee echar un vistazo a Configuración de Apache Commons.
Tengo una pequeña función de utilidad para convertir todos los valores posibles en booleanos.
private boolean convertToBoolean(String value) {
boolean returnValue = false;
if ("1".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value) ||
"true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value))
returnValue = true;
return returnValue;
}
Según la documentación (el énfasis es mío):
Analiza el argumento de cadena como booleano. El booleano devuelto representa el valor verdadero si el argumento de cadena no es nulo y es
igual, ignorando el caso, a la cadena “verdadero”.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)