pasar float convertir java boolean

java - float - set string to boolean



getBoolean(String str) y valueOf(String str) de la clase Boolean da salida diferente (5)

Me sorprende saber que los getBoolean() y valueOf() arrojan resultados diferentes para la misma cadena de entrada.

Intenté pasar el "true" a ambos métodos. Pero getBoolean() me da salida falsa mientras que valueOf() me da salida correcta que es verdadera. ¿Por qué?


El javadoc de getBoolean indica claramente que busca las Propiedades del sistema. El valor que le pasa es el nombre de la propiedad del sistema, no una cadena "verdadera" o "falsa".

Por ejemplo, `var b = Boolean.getBoolean (" some.property ");


También encontré este problema recientemente cuando uso Boolean.getBoolean (). Además, si desea tener un cheque nulo, puede usar Boolean.parseBoolean que devolverá falso en caso de nulos


La documentación API es tu amiga.

  • Boolean.getBoolean probablemente no haga lo que crees que hace:

    Devuelve verdadero si y solo si la propiedad del sistema nombrada por el argumento existe y es igual a la cadena "verdadero".


  • Boolean.valueOf es probablemente lo que estás buscando:

    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".


Boolean.getBoolean debe ser el método peor colocado en Java. Una de las grandes WTF.

¿Por qué no se colocó en System o Properties o lo que sea?

Entonces, para responder a su pregunta, sí, es algo muy confuso y puede hacer clic en el método en su IDE para ver el código o leer el javadoc.

Aquí está el código fuente:

public static boolean getBoolean(String name) { boolean result = false; try { result = toBoolean(System.getProperty(name)); } catch (IllegalArgumentException e) { } catch (NullPointerException e) { } return result; }


class Boo1 { public static void main(String[] args) { System.setProperty("true","true"); System.setProperty("false","true"); boolean d=Boolean.getBoolean("true"); System.out.println(d); } }