Podczas próby przekształcenia obiektu String obiektu na boolean, wynik jest inny.Obiekt ciągu znaków do obiektu Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
kończy się o wartości false
.
Podczas próby przekształcenia obiektu String obiektu na boolean, wynik jest inny.Obiekt ciągu znaków do obiektu Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
kończy się o wartości false
.
Korzystając Boolean.valueOf(String string) do Archiwum swój cel.
boolean boolFlag = Boolean.valueOf(strFlag);
Zwraca Boolean o wartości reprezentowanej przez określony ciąg. Zwrócona wartość Boolean reprezentuje wartość true, jeśli argument string nie jest pusty i jest równy, ignorując wielkość liter, do łańcucha "true".
Przykład: Boolean.valueOf("True")
zwraca true.
Przykład: Boolean.valueOf("yes")
zwraca wartość false.
Ponieważ Java 1.5 jest również Boolean.parseBoolean(String s)
która zwraca prymitywny typ boolean
zamiast pudełkowej typu Boolean
oszczędzić kilka cykli procesora w większości przypadków.
jeśli 'strFlag' zawiera wartość false? – Mdhar9e
wtedy 'boolFlag' jest fałszywe.Ponieważ 'boolean' może być tylko prawdą lub fałszem, wystarczy sprawdzić jedną z nich, w zależności od tego, jaka powinna być wartość" domyślna ". Dla opakowania 'Boolean' miałbyś rację, ponieważ ten mógłby stać się' null'. – devsnd
Lub po prostu 'boolean boolFlag =" true ".equalsIgnoreCase (strFlag);' – Jesper
Można użyć
boolFlag = "true".equalsIgnoreCase(strFlag);
Jeśli strFlag miałby wartość 'null', to dałoby to' NullPointerException'. – devsnd
dzięki za korektę –
Zastosowanie Boolean.valueOf
boolean boolFlag = Boolean.valueOf(strFlag);
Metoda ta zwraca wartość logiczną o wartości reprezentowanej przez określony ciąg. Zwrócona wartość Boolean reprezentuje wartość true, jeśli argument string nie jest pusty i jest równy, ignorując wielkość liter, do łańcucha "true".
ok .. spróbuję z tym. Wydaje się działać. – Mdhar9e
Korzystanie z wbudowanych jest lepszym rozwiązaniem niż moje rozwiązanie. +1 – devsnd
jeśli przechowujesz dane w prymitywie, to parsowanie jest bardzo, bardzo nieznacznie szybsze (ponieważ pozwala uniknąć rozpakowywania), ale czas ten będzie w każdym razie mniejszy niż czas parse, więc nie będzie problemu. – user439407
Boolean.getBoolean
testy aby sprawdzić, czy dana nieruchomość system jest prawdą, chcesz Boolean.parseBoolean
możesz upuścić kawałek kodu. – Mdhar9e
spróbuje użyć Boolean.valueOf(strFlag)
Korzystając Boolean.parseBoolean
boolean boolFlag = Boolean.parseBoolean(strFlag);
Ta metoda zwraca logiczną prymitywny rodzaj. Działa tak samo jak Boolean.valueOf, bez kosztów rozpakowywania.
Można użyć następującego
Boolean.getBoolean nie robić to, co myślisz, że to robi. Przeczytaj instrukcję. – Corbin
Nie jestem pewien, ale może jest w nim rozróżniana wielkość liter? A propos, dlaczego nie używasz 'Boolean.parseBoolean (string);'? – Leri
@ GPL nie są zbyt użyteczne, w szczególności niepoprawne domysły, takie jak ta. OP powinien zapoznać się z podręcznikiem zgodnie z zaleceniami, a Ty też powinieneś. – EJP