Programiranje

Java Boolean's getBoolean: koristno, čeprav nepopolno

Metoda Boolean.getBoolean (String) je statična metoda, ki je lahko včasih koristna. To metodo je zelo enostavno zamenjati kot tisto, ki nekako vrne ustrezno logično vrednost na podlagi posredovanega niza (na primer, kaj počneta Boolean.valueOf (String) in Boolean.parseBoolean (String)), vendar dokumentacija Javadoc za to metodo pojasnjuje, kaj resnično: Boolean.getBoolean (niz) metoda "Vrne true, če in samo, če sistemska lastnost, imenovana z argumentom, obstaja in je enaka nizu 'true'."

The Boolean.getBoolean (niz) metoda razvijalcem ponuja metodo za ugotavljanje, ali je določena lastnost nastavljena na »true«. Vrne "true" le, če je lastnost definirana in je vrednost, za katero je definirana, v neki obliki "true", kjer primer "true" ni pomemben. Veliko ime imena lastnosti je občutljivo na velike in male črke, njegova vrednost ("true", "TRUE", "TRUE", "TRue" itd.) Pa vobčutljiv.

Naslednja Java koda prikazuje Boolean.getBoolean (niz) v akciji.

DemonstrateBooleanGetBoolean.java

paket prah v.primeri; uvoz statičnega java.lang.System.out; / ** * Dokažite uporabnost Boolean.getBoolean (String) kljub težavi z poimenovanjem *. * / javni razred DemonstrateBooleanGetBoolean {/ ** * Glavna funkcija za izvajanje primerov, ki dokazujejo uporabo in učinke * Boolean.getBoolean (String). * / public static void main (final String [] argumentov) {final String basicPropertyName = "i.am.here"; končni niz basicUppercasePropertyName = basicPropertyName.toUpperCase (); končni niz wereHereProperty = "were.here.property"; končni niz wasHereProperty = "was.here.property"; out.println (basicPropertyName + "is" + Boolean.getBoolean (basicPropertyName)); out.println (basicUppercasePropertyName + "is" + Boolean.getBoolean (basicUppercasePropertyName)); out.println (wereHereProperty + "is" + Boolean.getBoolean (wereHereProperty)); out.println (wasHereProperty + "is" + Boolean.getBoolean (wasHereProperty)); if (Boolean.getBoolean ("i.am.set")) {System.out.println ("Pripravljen sem !!!"); } else {System.out.println ("Nisem nastavljen !!!"); }}} 

Z izvajanjem zgornjega razreda z lastnostmi, določenimi z možnostjo -D zaganjalnika aplikacij Java, lahko odtenki Boolean.getBoolean (niz) so prikazani. Rezultati v naslednjem posnetku zaslona to kažejo Boolean.getBoolean (niz) se res vrne prav ko je določeno ime lastnosti določeno in je definirano z vrednostjo String "true", v vsakem primeru za štiri črke, ki sestavljajo "true". Po drugi strani pa sprememba velikega imena imena lastnosti vpliva na rezultate Boolean.getBoolean (niz). Z drugimi besedami, medtem ko sta "true" in "TRUE" enaka iz lastnosti vrednost perspektiva, "i.am.here" in "I.AM.HERE" sta popolnoma različni imeni lastnosti od a ime lastnosti perspektiva.

Obstaja več načinov uporabe Boolean.getBoolean (niz) metoda, ki vključuje pogojno logiko izvajanja glede na to, ali je parameter nastavljen ali ne. Objava v spletnem dnevniku Prosimo, uporabite Boolean.getBoolean (SOME_FLAG_KEY) podrobneje pokriva to uporabo.

Čeprav je ta metoda zelo koristna, ni dvoma, da ni bila imenovana tako dobro, kot bi lahko bila. Več objav v blogu izraža razočaranje razvijalcev Java nad to izbiro poimenovanja API in razredom gostovanja za statično metodo: Padel sem v past Boolean.getBoolean () [oktober 2007], Pasti Java API: Boolean.getBoolean (String) [oktober 2005 ], Nekaj ​​zabave z Boolean.getBoolean (String) [julij 2009], Boolean.getBoolean ni tisto, kar mislite, da je [oktober 2003], in Boolean.getBoolean (String) [ta mesec!

Zaključek

zdi se mi Boolean.getBoolean (niz) včasih zelo koristna metoda, vendar se tudi strinjam z drugimi zgoraj navedenimi razvijalci Jave, da to ni ena izmed boljših odločitev za API. Kot je predlagalo več drugih, se zdi, da bi se morda bolje prilegal razredu java.lang.System in bi raje imel ime metode, kot je "isPropertyTrue (String)". Ko se zavemo te tankočutnosti in razlike med Boolean.getBoolean (String) in Boolean.valueOf (String) (ali Boolean.parseBoolean (String), na voljo od J2SE 5), lahko obe metodi ustrezno uporabimo in biti zelo dragocen v določenih situacijah.

To zgodbo, "Java Boolean's getBoolean: Koristno, čeprav nepopolno", je prvotno objavil JavaWorld.

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