Ohjelmointi

Java Booleanin getBoolean: hyödyllinen, vaikkakin epätäydellinen

Boolean.getBoolean (String) -menetelmä on staattinen menetelmä, josta voi olla hyötyä silloin tällöin. Tämän menetelmän sekoittaminen on erittäin helppoa sellaisena, joka palauttaa jotenkin sopivan Boolean annetun merkkijonon perusteella (kuten mitä Boolean.valueOf (String) ja Boolean.parseBoolean (String) tekevät), mutta tämän menetelmän Javadoc-ohjeet selittävät sen todella tekee: Boolean.getBoolean (merkkijono) method "Palauttaa tosi vain ja vain, jos argumentilla nimetty järjestelmäominaisuus on olemassa ja on yhtä suuri kuin merkkijono" true "."

Boolean.getBoolean (merkkijono) method tarjoaa kehittäjille menetelmän sen määrittämiseksi, onko tietylle ominaisuudelle asetettu "true". Se palauttaa "tosi" vain, jos ominaisuus on määritelty ja arvo, jolle se on määritelty, on jonkinlainen "tosi", missä "tosi" -tapauksella ei ole väliä. Ominaisuuden nimen tapaus on isot ja pienet kirjaimet, mutta sen arvo ("true", "True", "true", "TRUE" jne.) On tapaus. sisäänherkkä.

Seuraava Java-koodi osoittaa Boolean.getBoolean (merkkijono) toiminnassa.

OsoitaBooleanGetBoolean.java

pakkaus pölyä.esimerkkejä; tuo staattinen java.lang.System.out; / ** * Osoita Boolean.getBoolean (merkkijono) hyödyllisyys huolimatta sen nimeämisestä *. * / public class DemonstrateBooleanGetBoolean {/ ** * Päätoiminto esimerkkien * Boolean.getBoolean (merkkijono) käyttöä ja vaikutuksia osoittavien esimerkkien suorittamiseen. * / public static void main (viimeiset merkkijonon [] argumentit) {final String basicPropertyName = "sis. täällä"; lopullinen merkkijono basicUppercasePropertyName = basicPropertyName.toUpperCase (); viimeinen merkkijono wereHereProperty = "olivat.täällä.ominaisuudet"; viimeinen merkkijono wasHereProperty = "was.here.property"; out.println (basicPropertyName + "on" + Boolean.getBoolean (basicPropertyName)); out.println (basicUppercasePropertyName + "on" + Boolean.getBoolean (basicUppercasePropertyName)); out.println (wereHereProperty + "on" + Boolean.getBoolean (wereHereProperty)); out.println (wasHereProperty + "on" + Boolean.getBoolean (wasHereProperty)); if (Boolean.getBoolean ("i.am.set")) {System.out.println ("Olen asetettu !!!"); } else {System.out.println ("En ole asetettu !!!"); }}} 

Suorittamalla yllä oleva luokka ominaisuuksilla, jotka on määritetty Java-sovellusten käynnistysohjelman -D-vaihtoehdon avulla, Boolean.getBoolean (merkkijono) on osoitettu. Seuraavan näytön tilannekuvan tulokset osoittavat sen Boolean.getBoolean (merkkijono) palaa todellakin totta kun tietty ominaisuuden nimi on määritetty ja määritelty merkkijonolla "true", joka tapauksessa neljä kirjainta, jotka muodostavat "true". Toisaalta kiinteistön nimen kirjainkoon muuttaminen vaikuttaa kohteen tuloksiin Boolean.getBoolean (merkkijono). Toisin sanoen, vaikka "tosi" ja "TOSI" ovat samat ominaisuudesta arvo näkökulmasta "i.am.here" ja "I.AM.HERE" ovat täysin erilaisia ​​omaisuuden nimiä kuin a kiinteistön nimi näkökulmasta.

Sillä on useita käyttötapoja Boolean.getBoolean (merkkijono) menetelmä, joka sisältää ehdollisen ajonaikaisen logiikan perustuen siihen, onko parametri asetettu vai ei. Blogikirjoitus Ole hyvä ja käytä Boolean.getBoolean (SOME_FLAG_KEY) kattaa tämän käytön tarkemmin.

Vaikka tämä menetelmä on erittäin hyödyllinen, ei ole epäilystäkään siitä, että sitä ei nimitetty niin hyvin kuin se olisi voinut olla. Useat blogiviestit ilmaisevat Java-kehittäjien pettymyksen staattisen menetelmän sovellusliittymän nimeämisvalinnasta ja isännöintiluokasta: I Fell in the Trap of Boolean.getBoolean () [lokakuu 2007], Java API: n karhot: Boolean.getBoolean (String) [lokakuu 2005 ], Hauskaa Boolean.getBooleanin kanssa (merkkijono) [heinäkuu 2009], Boolean.getBoolean ei ole sitä, mitä luulet olevan [lokakuu 2003], ja Ever Beened by Boolean.getBoolean (merkkijono) [tässä kuussa!].

Johtopäätös

löydän Boolean.getBoolean (merkkijono) olla toisinaan erittäin hyödyllinen menetelmä, mutta olen samaa mieltä myös muiden edellä mainittujen Java-kehittäjien kanssa siitä, että se ei kuulu parempiin API-päätöksiin. Kuten monet muut ovat ehdottaneet, näyttää siltä, ​​että se olisi voinut sopia paremmin java.lang.System-luokkaan, ja olisin halunnut menetelmän nimen, kuten "isPropertyTrue (String)". Tästä huolimatta, kun on tietoinen tästä hienovaraisuudesta ja erosta Boolean.getBoolean (merkkijono) ja Boolean.valueOf (merkkijono) (tai Boolean.parseBoolean (merkkijono), saatavana J2SE 5: n jälkeen), molempia menetelmiä voidaan soveltaa asianmukaisesti ja olla erittäin arvokas tietyissä tilanteissa.

Tämän tarinan "Java Boolean's getBoolean: Useful Albeit Imperfect" julkaisi alun perin JavaWorld.

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