2010-02-05 13 views

Odpowiedz

107

Jeśli obiekt jest faktycznie instancja Boolean, a potem po prostu rzucić go:

boolean di = (Boolean) someObject; 

Wyraźna obsada zrobi konwersję do Boolean, a następnie nie ma auto-unboxing do wartości pierwotnej. Albo można zrobić jawnie:

boolean di = ((Boolean) someObject).booleanValue(); 

Jeśli someObject nie odnosi się do wartości logicznej choć, co chcesz kod to zrobić?

+1

Brak jej nie logiczną instancję, ale ma wartość jako prawda lub fałsz –

+2

Następnie, jakiego rodzaju to jest? –

+0

Dzięki temu udało się. Jak lame jestem :) –

30

Zakładając, że yourObject.toString() zwraca „true” lub „false”, można spróbować

boolean b = Boolean.valueOf(yourObject.toString()) 
+0

Mam problem ze zrozumieniem, dlaczego toString() jest wymagany. Jeśli to nie jest łańcuch, to tylko obiekt? –

+2

, ponieważ yourObject jest instancją typu Object, a metoda valueOf przyjmuje ciąg. – Neets

+1

Prawdopodobnie powinno to być 'Boolean.parseBoolean', aby uniknąć boksowania i rozpakowywania' Boolean'. –

Powiązane problemy