Tôi đã thử nhiều cách khác nhau để sửa lỗi này, nhưng tôi không thể sửa chữa nó. Tôi cố gắng để có được giá trị Boolean của một Object qua bên phương pháp này một Checkbox:Cách lấy giá trị Boolean từ Object
public boolean onPreferenceChange(Preference preference, Object newValue)
{
final String key = preference.getKey();
referenceKey=key;
Boolean changedValue=!(((Boolean)newValue).booleanValue()); //ClassCastException occurs here
}
tôi nhận được:
java.lang.ClassCastException: java.lang.String không thể là đúc để java.lang.Boolean
Trước tiên, bạn giả định giá trị mới là loại Boolean. Bạn có thể sử dụng instanceof để kiểm tra kiểu newValue. Nếu nó là một boolean, với autounboxing, bạn không có vấn đề gì. Nếu đó là một chuỗi, bạn có thể so sánh (bỏ qua trường hợp) cho các giá trị "true", "false", sau đó tạo biểu diễn boolean thích hợp. – horbags