Programavimas

„Java Boolean“ „getBoolean“: naudinga, nors ir netobula

Boolean.getBoolean (String) metodas yra statinis metodas, kuris dabar gali būti naudingas. Labai lengva supainioti šį metodą kaip tokį, kuris kažkaip grąžina tinkamą Boolean pagal pateiktą eilutę (pvz., Ką daro Boolean.valueOf (String) ir Boolean.parseBoolean (String)), tačiau šio metodo „Javadoc“ dokumentuose paaiškinama, ką tai tikrai daro: Boolean.getBoolean (eilutė) metodas "Grąžina teisingą tik tada, jei egzistuoja argumento įvardyta sistemos ypatybė ir yra lygi eilutei" true "."

Boolean.getBoolean (eilutė) metodas pateikia kūrėjams metodą, leidžiantį nustatyti, ar tam tikra ypatybė nustatyta kaip „teisinga“. Tikra reikšmė grąžinama tik tuo atveju, jei ypatybė yra apibrėžta, o vertė, kuriai ji apibrėžta, yra tam tikra „tikrosios“ forma, kur „tikro“ atvejis neturi reikšmės. Pats nuosavybės pavadinimo atvejis skiriamas nuo didžiųjų ir mažųjų raidžių, tačiau jo reikšmė („true“, „TRUE“, „true“, „TRUE“ ir kt.) Yra didžiosios ir mažosios raidės. įjautrus.

Šis „Java“ kodas rodo Boolean.getBoolean (eilutė) veikiant.

ParodykiteBooleanGetBoolean.java

pakuotė dustin.pavyzdžiai; importuoti statinį java.lang.System.out; / ** * Parodykite Boolean.getBoolean (String) naudingumą, nepaisant jo pavadinimo * problemos. * / public class DemonstrateBooleanGetBoolean {/ ** * Pagrindinė funkcija, vykdanti pavyzdžius, parodančius * Boolean.getBoolean (String) naudojimą ir poveikį. * / public static void main (final String [] argumentai) {final String basicPropertyName = "Aš.čia.čia"; galutinė eilutė basicUppercasePropertyName = basicPropertyName.toUpperCase (); galutinė eilutė wereHereProperty = "buvo.čia. nuosavybė"; galutinė eilutė wasHereProperty = "buvo.čia. nuosavybė"; out.println (basicPropertyName + "yra" + Boolean.getBoolean (basicPropertyName)); out.println (basicUppercasePropertyName + "yra" + Boolean.getBoolean (basicUppercasePropertyName)); out.println (wereHereProperty + "yra" + Boolean.getBoolean (wereHereProperty)); out.println (wasHereProperty + "yra" + Boolean.getBoolean (wasHereProperty)); if (Boolean.getBoolean ("i.am.set")) {System.out.println ("Aš pasirinkau !!!"); } else {System.out.println ("Aš NĖRA nustatyta !!!"); }}} 

Vykdant aukščiau nurodytą klasę su ypatybėmis, nurodytomis naudojant „Java“ programų paleidimo priemonės -D parinktį, Boolean.getBoolean (eilutė) yra demonstruojami. Rezultatai, esantys kitame ekrano momentiniame vaizde, rodo tai Boolean.getBoolean (eilutė) iš tikrųjų grįžta tiesa kai nurodomas konkretus ypatybės pavadinimas ir jis yra apibrėžtas eilutės reikšme „true“, bet kuriuo atveju keturios raidės, sudarančios „true“. Kita vertus, nuosavybės pavadinimo raidės pakeitimas daro įtaką Boolean.getBoolean (eilutė). Kitaip tariant, nors „tiesa“ ir „TIESA“ iš nuosavybės yra tas pats vertė perspektyvoje „i.am.here“ ir „I.AM.HERE“ yra visiškai skirtingi nuosavybės pavadinimai nuo a nuosavybės pavadinimas perspektyva.

Yra keli „Windows“ naudojimo būdai Boolean.getBoolean (eilutė) metodas, apimantis sąlyginę vykdymo laiko logiką, atsižvelgiant į tai, ar parametras nustatytas, ar ne. Tinklaraščio įraše Prašome naudoti „Boolean.getBoolean“ (SOME_FLAG_KEY) išsamiau aprašomas šis naudojimas.

Nors šis metodas yra labai naudingas, nekyla abejonių, kad jis nebuvo taip gerai pavadintas, kaip galėjo būti. Keli tinklaraščio įrašai išreiškia „Java“ kūrėjų nusivylimą dėl šio API pavadinimų pasirinkimo ir statinio metodo prieglobos klasės: „Aš patekau į„ Boolean.getBoolean “() [2007 m. Spalio mėn.] Spąstus,„ Java “API spąstai:„ Boolean.getBoolean “(String) [2005 m. Spalio mėn. ], „Fun with Boolean.getBoolean“ (eilutė) [2009 m. Liepos mėn.], „Boolean.getBoolean“ ne tai, ką jūs manote [2003 m. Spalio mėn.], Ir „Ever Beened by Boolean.getBoolean“ („String“) [šį mėnesį!].

Išvada

aš radau Boolean.getBoolean (eilutė) kartais būti labai naudingu metodu, tačiau taip pat sutinku su kitais aukščiau minėtais „Java“ kūrėjais, kad tai nėra vienas iš geresnių API sprendimų. Kaip pasiūlė keli kiti, atrodo, kad tai gali geriau tikti java.lang.System klasėje, ir aš norėčiau, kad būčiau pageidavęs metodo pavadinimo, pvz., „IsPropertyTrue (String)“. Tai sakant, sužinojus apie šį subtilumą ir skirtumą tarp Boolean.getBoolean (String) ir Boolean.valueOf (String) (arba Boolean.parseBoolean (String), pasiekiamų nuo J2SE 5), abu metodus galima tinkamai pritaikyti ir būti labai vertingas tam tikrose situacijose.

Šią istoriją „Java Boolean's getBoolean: naudinga, nors ir netobula“ iš pradžių paskelbė „JavaWorld“.

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