Konvertering af en Java-streng til en boolsk

1. Oversigt

I denne vejledning vil vi udforske de forskellige måder, vi kan bruge Java på Boolsk klasse tilkonvertere en Snor ind i en boolsk.

2. Boolean.parseBoolean ()

Boolean.parseBoolean () tillader os at passere i en Snor og modtage en primitiv boolsk.

Lad os først skrive en test for at se hvordan parseBoolean () konverterer en Snor med værdien rigtigt:

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

Selvfølgelig består testen.

Faktisk er semantikken i parseBoolean () er så tydelige, at IntelliJ IDEA advarer os om, at det strækker sig bogstaveligt "rigtigt" er overflødig.

Med andre ord, denne metode er fremragende til at dreje en Snor ind i en boolsk.

3. Boolean.valueOf ()

Boolean.valueOf () lader os også passere i en Snor, men denne metode returnerer a Boolsk klasseinstans i stedet for en primitiv boolsk.

Vi kan se, at denne metode også lykkes med at konvertere vores Snor:

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

Denne metode bruger faktisk parseBoolean () at gøre sit Snor konvertering i baggrunden og bruger blot resultatet til at returnere en statisk defineret Boolsk eksempel.

Derfor, denne metode skal kun bruges, hvis den returneres Boolsk instans er nødvendig. Hvis kun et primitivt resultat er nødvendigt, er det mere performant at holde fast ved at bruge parseBoolean () direkte.

4. Boolean.getBoolean ()

Boolean.getBoolean () er en tredje metode, der accepterer en Snor og returnerer a boolsk.

Uden at se på dokumentationen eller implementeringen af ​​denne metode kan man med rimelighed antage, at denne metode også er til konvertering af dens Snor argument i en boolsk:

assertThat (Boolean.getBoolean ("true")). isTrue (); // denne test mislykkes!

Årsagen til, at denne test mislykkes, er, at det Snor argument formodes at repræsentere navnet på en boolsk systemegenskab.

Ved at definere systemegenskaben:

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

Endelig består testen. Inspektion af implementeringen af ​​denne metode afslører, at den også bruger parseBoolean () metode til at gøre sit Snor konvertering.

Noter det getBoolean () er bogstaveligt talt en genvej til parseBoolean (System.getProperty (“sand”)), hvilket betyder, at vi ikke skal vildledes af navnet.

Derfor, den eneste måde Boolean.getBoolean ("sand"); vil nogensinde vende tilbage rigtigt er, hvis der findes en systemegenskab kaldet "rigtigt" og dens værdi analyseres i rigtigt.

4. Konklusion

I denne korte vejledning har vi set de vigtigste forskelle mellem Boolean.parseBoolean (), Boolean.valueOf ()og Boolean.getBoolean ().

Mens parseBoolean () og Værdi af() begge konverterer en Snor ind i en boolsk, det er vigtigt at huske det Boolean.getBoolean () gør ikke.

Kildekoden med alle eksemplerne i denne vejledning kan findes på Github.


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