2012-05-17 29 views

回答

6

A StringBoolean是完全不同的類,所以您不能在它們之間進行投射。您需要使用Boolean.valueOf()String.獲得Boolean

它不像C或C++,你可以在其中強制任何東西施放任何東西(當然,如果你不小心,你可能會遇到很多麻煩,因爲不能保證任意施放會有任何意義)。

而且它也不像C++那樣,如果定義了類型轉換運算符,則該類型轉換將轉換爲其中一個轉換運算符的自動調用。 Java中的對象類型之間沒有自動轉換。

+0

但newValue的類型爲Object。 –

+0

@RandonP:任何對象都可以向下轉換爲「對象」 - 但是你不能向任何東西上傳「對象」。 –

1

如果這是一個字符串值,您將需要使用Boolean.valueOf(String)方法。 Java不會將對象自動轉換爲不同類型,只能通過包裝器和基本類型之間的自動裝箱轉換。

2

Java是強類型語言。如果newValue不是Boolean對象,那麼如果您嘗試將其轉換爲Boolean,則會得到ClassCastException。如果newValueString表示Boolean值,你可以試試下面的代碼:

boolean changedValue = Boolean.parseBoolean(newValue) 

參考:http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html#parseBoolean%28java.lang.String%29

+0

沒有String.parseBoolean方法。 –

+0

@RandonP:見編輯。 –

+0

對不起。 Meant Boolean.parseBoolean(newValue)。感謝Greg的編輯。 – InPursuit