Konverzia reťazca Java Boolean

1. Prehľad

V tomto výučbe to urobíme preskúmať rôzne spôsoby, ako môžeme používať Java Boolovský trieda dokonvertovať a String do a boolovský.

2. Boolean.parseBoolean ()

Boolean.parseBoolean () umožňuje nám odovzdať a String a prijmi primitiv boolovský.

Najskôr napíšeme test, aby sme videli, ako na to parseBoolean () prevádza a String s hodnotou pravda:

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

Samozrejme, že test vyhovuje.

V skutočnosti sémantika parseBoolean () sú také jasné, že IntelliJ IDEA nás varuje, že odovzdanie reťazca je doslovné „Pravda“ je nadbytočný.

Inými slovami, táto metóda je vynikajúca na sústruženie a String do a boolovský.

3. Boolean.valueOf ()

Boolean.valueOf () umožňuje nám tiež odovzdať a String, ale táto metóda vracia a Boolovský inštancia triedy namiesto primitívu boolovský.

Vidíme, že tejto metóde sa darí premieňať aj našu Reťazec:

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

Táto metóda skutočne používa parseBoolean () robiť to String konverziu na pozadí a jednoducho použije výsledok na vrátenie staticky definovaného Boolovský inštancia.

Preto táto metóda by sa mala použiť, iba ak je vrátená Boolovský je potrebná inštancia. Ak je potrebný iba primitívny výsledok, je efektívnejšie držať sa používania parseBoolean () priamo.

4. Boolean.getBoolean ()

Boolean.getBoolean () je tretia metóda, ktorá akceptuje a String a vráti a boolovský.

Bez prezerania dokumentácie alebo implementácie tejto metódy by sa dalo rozumne predpokladať, že táto metóda slúži aj na jej konverziu String argument do a boolean:

assertThat (Boolean.getBoolean ("true")). isTrue (); // tento test zlyhá!

Dôvod, prečo tento test zlyhá, je ten the String argument má predstavovať názov a boolovský systémový majetok.

Definovaním vlastnosti systému:

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

Nakoniec test prejde. Kontrolou implementácie tejto metódy sa zistilo, že tiež využíva parseBoolean () spôsob, ako to urobiť String premena.

Poznač si to getBoolean () je doslova skratka pre parseBoolean (System.getProperty („true“)), čo znamená, že by nás meno nemalo mýliť.

Preto jediná cesta Boolean.getBoolean („pravda“); sa niekedy vráti pravda je, ak existuje systémová vlastnosť s názvom „Pravda“ a jeho hodnota sa analyzuje na pravda.

4. Záver

V tomto krátkom tutoriáli sme videli kľúčové rozdiely medzi nimi Boolean.parseBoolean (), Boolean.valueOf ()a Boolean.getBoolean ().

Zatiaľ čo parseBoolean () a hodnota() obaja prevádzajú a String do a boolovský, je dôležité si to uvedomiť Boolean.getBoolean () nie.

Zdrojový kód so všetkými príkladmi v tomto výučbe nájdete na serveri Github.


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