J'ai récemment essayer de convertir une chaîne de caractères littérale en boolean
, lorsque la méthode boolean Boolean.getBoolean(String name)
sauté hors de la fonction de fenêtre. Il y avait aussi une autre méthode (boolean Boolean.parseBoolean(String s)
) apparaissant juste après, ce qui m'a conduit à chercher à savoir quelles étaient les différences entre ces deux-là, comme ils semblaient à faire de même.
Il s'avère que ce Boolean.getBoolean(String name)
vraiment fait, c'est de vérifier s'il existe un System
de la propriété (!) le nom donné et si sa valeur est true
. Je pense que c'est très trompeur, car je ne suis certainement pas attendre qu'une méthode de Boolean
est en fait de faire un appel à l' System.getProperty
, et juste en regardant la signature de la méthode, il semble (au moins pour moi) comme il devrait être utilisée pour analyser un String
comme boolean
. Bien sûr, la javadoc etats clairement, mais je pense toujours que la méthode a un nom trompeur et il n'est pas à la bonne place. Autre type primitif wrappers, comme Integer
ont également une méthode similaire.
Aussi, il ne semble pas être une méthode très utile pour appartenir à l'API de base, je pense que ce n'est pas très commun d'avoir quelque chose qui ressemble -Darg=true
. Peut-être que c'est une bonne question pour un Java position interview: "qu'est-Ce que la sortie de l' Boolean.getBoolean("true")
?". Je crois qu'un endroit plus approprié pour ces méthodes serait dans l' System
classe, par exemple, getPropertyAsBoolean
; mais encore une fois, je pense toujours que c'est inutile d'avoir ces méthodes de l'API de base. Il ferait de sens dans quelque chose comme l' Properties
classe, où il est très courant de voir ce type de conversions.
Que pensez-vous de tout cela? Aussi, si il y a un autre "maladroite" de la méthode que vous êtes au courant, s'il vous plaît poster.
N. B. je sais que je peux utiliser Boolean.valueOf
ou Boolean.parseBoolean
pour convertir une chaîne de caractères littérale en boolean
, mais je suis juste à la recherche pour discuter de la conception d'API.