我嘗試了不同的方法來解決這個問題,但我無法修復它。我試圖讓一個複選框的這種方法裏面傳遞了一個對象的布爾值:如何從對象獲取布爾值
public boolean onPreferenceChange(Preference preference, Object newValue)
{
final String key = preference.getKey();
referenceKey=key;
Boolean changedValue=!(((Boolean)newValue).booleanValue()); //ClassCastException occurs here
}
我得到:
java.lang.ClassCastException:java.lang.String中不能相反,它鑄造的轉換爲java.lang.Boolean的
首先假設newValue是Boolean類型的。你可以使用instanceof來檢查newValue的類型。如果它是一個布爾類型,使用autounboxing,你沒有問題。如果它是一個字符串,則可以比較(忽略大小寫)值「true」,「false」,然後創建適當的布爾表示形式。 – horbags