Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为bundle赋值时的ClassCastException_Java_Android - Fatal编程技术网

Java 为bundle赋值时的ClassCastException

Java 为bundle赋值时的ClassCastException,java,android,Java,Android,我在加载包时出错。我已检查了所有初始化和强制转换,但无法解决此问题。 请参阅参考资料: Bundle bundle = getIntent().getExtras(); if (bundle.containsKey("MEASUREMENT_DATA")) { body_scaleMeasurement = bundle.getParcelable("MEASUREMENT_DATA"); evaluate_info(); } 车身尺寸测量规范 package model;

我在加载包时出错。我已检查了所有初始化和强制转换,但无法解决此问题。 请参阅参考资料:

Bundle bundle = getIntent().getExtras();
if (bundle.containsKey("MEASUREMENT_DATA")) {
    body_scaleMeasurement = bundle.getParcelable("MEASUREMENT_DATA");
    evaluate_info();
}
车身尺寸测量规范

package model;

import android.os.Parcel;
import android.os.Parcelable;

import com.google.gson.annotations.SerializedName;

public class BodyScaleMeasurement implements Parcelable {

    @SerializedName("id")
    private String id;
    @SerializedName("client_platform_version")
    private String client_platform_version;
    @SerializedName("client_build_number")

    @SerializedName("client_platform_data")
    private Client_platform_data client_platform_data;
    @SerializedName("ble_device_data")
    private Ble_device_data ble_device_data;


    private transient boolean is_synchronized;

    public BodyScaleMeasurement() {
    }

    public BodyScaleMeasurement(String id, String client_platform_version, int client_build_number,  Client_platform_data client_platform_data, Ble_device_data ble_device_data, boolean is_synchronized) {
        this.id = id;
        this.client_platform_version = client_platform_version;
        this.client_build_number = client_build_number;

        this.client_platform_data = client_platform_data;
        this.ble_device_data = ble_device_data;

        this.is_synchronized = is_synchronized;

    }

    public boolean is_synchronized() {
        return is_synchronized;
    }

    public void setIs_synchronized(boolean is_synchronized) {
        this.is_synchronized = is_synchronized;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getClient_platform_version() {
        return client_platform_version;
    }

    public void setClient_platform_version(String client_platform_version) {
        this.client_platform_version = client_platform_version;
    }

    public int getClient_build_number() {
        return client_build_number;
    }

    public void setClient_build_number(int client_build_number) {
        this.client_build_number = client_build_number;
    }



    public Client_platform_data getClient_platform_data() {
        return client_platform_data;
    }

    public void setClient_platform_data(Client_platform_data client_platform_data) {
        this.client_platform_data = client_platform_data;
    }

    public Ble_device_data getBle_device_data() {
        return ble_device_data;
    }

    public void setBle_device_data(Ble_device_data ble_device_data) {
        this.ble_device_data = ble_device_data;
    }



    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.id);
        dest.writeString(this.client_platform_version);
        dest.writeInt(this.client_build_number);

        dest.writeParcelable(this.client_platform_data, 0);
        dest.writeParcelable(this.ble_device_data, 0);

        dest.writeByte(is_synchronized ? (byte) 1 : (byte) 0);
    }

    protected BodyScaleMeasurement(Parcel in) {
        this.id = in.readString();
        this.client_platform_version = in.readString();
        this.client_build_number = in.readInt();

        this.client_platform_data = in.readParcelable(Client_platform_data.class.getClassLoader());
        this.ble_device_data = in.readParcelable(Ble_device_data.class.getClassLoader());

        this.is_synchronized = in.readByte() != 0;
    }

    public static final Parcelable.Creator<BodyScaleMeasurement> CREATOR = new Parcelable.Creator<BodyScaleMeasurement>() {
        public BodyScaleMeasurement createFromParcel(Parcel source) {
            return new BodyScaleMeasurement(source);
        }

        public BodyScaleMeasurement[] newArray(int size) {
            return new BodyScaleMeasurement[size];
        }
    };
}
这就是我得到的错误。请参考我所附的图片

客户端\u平台\u数据是否可能实现Parcelable并具有
Parcelable.Creator?

之所以发生这种情况,是因为我将其他变量的类型从double更改为int。虽然这不是预期的,但我自己并不理解。我恢复了进行转换时所做的更改


此外,转换后的值也发生了变化。例如:如果我用一个键发送50到bundle。它被设置为某个负整数

哪一行是BodyScaleMeasurement.java:338?this.ble\u device\u data=in.readParcelable\u device\u data.class.getClassLoader@shmosel请检查注释客户端生成号发生了什么?类中缺少它。这不是答案。如果您想问问题,请使用“在问题下方添加评论”。如果你缺乏声誉,那么首先通过回答其他问题来计算你的声誉分数。这可能会帮助一些人解决问题。请参考这个。