Een Java-string omzetten in een booleaanse waarde

1. Overzicht

In deze tutorial zullen we verken de verschillende manieren waarop we Java's kunnen gebruiken Boolean klas naarconverteer een Draad in een boolean.

2. Boolean.parseBoolean ()

Boolean.parseBoolean () stelt ons in staat om een Draad en ontvang een primitief boolean.

Laten we eerst een test schrijven om te zien hoe parseBoolean () converteert een Draad met de waarde waar:

assertThat (Boolean.parseBoolean ("true")). isTrue ();

Natuurlijk slaagt de test.

In feite is de semantiek van parseBoolean () zijn zo duidelijk dat IntelliJ IDEA ons waarschuwt dat de tekenreeks letterlijk wordt doorgegeven "Waar" is overbodig.

Met andere woorden, deze methode is uitstekend geschikt voor het draaien van een Draad in een boolean.

3. Boolean.valueOf ()

Boolean.valueOf () laat ons ook een Draad, maar deze methode retourneert een Boolean class-instantie in plaats van een primitief boolean.

We kunnen zien dat deze methode er ook in slaagt om onze Draad:

assertThat (Boolean.valueOf ("true")). isTrue ();

Deze methode gebruikt eigenlijk parseBoolean () om zijn te doen Draad conversie op de achtergrond, en gebruikt eenvoudig het resultaat om een ​​statisch gedefinieerd Boolean voorbeeld.

Daarom deze methode mag alleen worden gebruikt als het geretourneerde Boolean instantie is nodig. Als alleen een primitief resultaat nodig is, is het performanter om vast te houden aan het gebruik parseBoolean () direct.

4. Boolean.getBoolean ()

Boolean.getBoolean () is een derde methode die een Draad en retourneert een boolean.

Zonder naar de documentatie of de implementatie van deze methode te kijken, zou men redelijkerwijs kunnen aannemen dat deze methode ook bedoeld is voor het converteren van zijn Draad argument in een booleaans:

assertThat (Boolean.getBoolean ("true")). isTrue (); // deze test mislukt!

De reden dat deze test mislukt, is dat de Draad argument wordt verondersteld de naam van een te vertegenwoordigen boolean systeemeigenschap.

Door de systeemeigenschap te definiëren:

System.setProperty ("CODING_IS_FUN", "true"); assertThat (Boolean.getBoolean ("CODING_IS_FUN")). isTrue ();

Eindelijk slaagt de test. Bij inspectie van de implementatie van deze methode blijkt dat ook deze de parseBoolean () methode om zijn Draad conversie.

Let daar op getBoolean () is letterlijk een snelkoppeling voor parseBoolean (System.getProperty ("true")), wat betekent dat we ons niet mogen laten misleiden door de naam.

Daarom de enige manier Boolean.getBoolean ("waar"); zal ooit terugkeren waar is als er een systeemeigenschap bestaat met de naam "Waar" en zijn waarde parseert in waar.

4. Conclusie

In deze korte tutorial hebben we de belangrijkste verschillen tussen Boolean.parseBoolean (), Boolean.valueOf (), en Boolean.getBoolean ().

Terwijl parseBoolean () en waarde van() beide converteren een Draad in een boolean, het is belangrijk om dat te onthouden Boolean.getBoolean () doet niet.

De broncode met alle voorbeelden in deze tutorial is te vinden op Github.


$config[zx-auto] not found$config[zx-overlay] not found