1. Información general
En este tutorial, exploraremos las diferentes formas en que podemos usar la clase booleana de Java para convertir un String en un booleano .
2. Boolean.parseBoolean ()
Boolean.parseBoolean () nos permite pasar un String y recibir un booleano primitivo .
Primero, escribamos una prueba para ver cómo parseBoolean () convierte una cadena con el valor verdadero:
assertThat(Boolean.parseBoolean("true")).isTrue();
Por supuesto, la prueba pasa.
De hecho, la semántica de parseBoolean () es tan clara que IntelliJ IDEA nos advierte que pasar la cadena literal "verdadero" es redundante.
En otras palabras, este método es excelente para convertir un String en un booleano .
3. Boolean.valueOf ()
Boolean.valueOf () también nos permite pasar un String , pero este método devuelve una instancia de clase booleana en lugar de un booleano primitivo .
Podemos ver que este método también logra convertir nuestro String:
assertThat(Boolean.valueOf("true")).isTrue();
Este método en realidad usa parseBoolean () para realizar su conversión de cadena en segundo plano, y simplemente usa el resultado para devolver una instancia booleana definida estáticamente .
Por lo tanto, este método solo debe usarse si se necesita la instancia booleana devuelta . Si solo se necesita un resultado primitivo, es más eficaz utilizar parseBoolean () directamente.
4. Boolean.getBoolean ()
Boolean.getBoolean () es un tercer método que acepta un String y devuelve un boolean .
Sin mirar la documentación o la implementación de este método, uno podría asumir razonablemente que este método también es para convertir su argumento String en un booleano:
assertThat(Boolean.getBoolean("true")).isTrue(); // this test fails!
La razón por la que esta prueba falla es que se supone que el argumento String representa el nombre de una propiedad del sistema booleano .
Definiendo la propiedad del sistema:
System.setProperty("CODING_IS_FUN", "true"); assertThat(Boolean.getBoolean("CODING_IS_FUN")).isTrue();
Finalmente, pasa la prueba. La inspección de la implementación de este método revela que también usa el método parseBoolean () para realizar su conversión de cadena .
Tenga en cuenta que getBoolean () es literalmente un atajo de parseBoolean (System.getProperty (“true”)), lo que significa que no debemos dejarnos engañar por el nombre.
Por lo tanto, la única forma en que Boolean.getBoolean ("verdadero"); siempre devolverá verdadero si existe una propiedad del sistema llamada "verdadero" y su valor se convierte en verdadero .
4. Conclusión
En este breve tutorial, hemos visto las diferencias clave entre Boolean.parseBoolean () , Boolean.valueOf () y Boolean.getBoolean () .
Si bien parseBoolean () y valueOf () convierten un String en un booleano , es importante recordar que Boolean.getBoolean () no lo hace.
El código fuente con todos los ejemplos de este tutorial se puede encontrar en Github.