Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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 Can';t实例化可分配对象_Java_Android_Serialization - Fatal编程技术网

Java Can';t实例化可分配对象

Java Can';t实例化可分配对象,java,android,serialization,Java,Android,Serialization,我创建了一个可分配的类,并希望将其用于从片段a到片段B的数据传输。我像在许多其他教程中一样这样做,但我无法从可分配的对象类实例化。它总是说,我必须把‘包裹输入’作为参数 这里是我的对象类: public class DataObject implements Parcelable { private int number1 = 0; private int number2 = 0; private String name = ""; public int getNumber1() {

我创建了一个可分配的类,并希望将其用于从片段a到片段B的数据传输。我像在许多其他教程中一样这样做,但我无法从可分配的对象类实例化。它总是说,我必须把‘包裹输入’作为参数

这里是我的对象类:

public class DataObject implements Parcelable {

private int number1 = 0;
private int number2 = 0;
private String name = "";

public int getNumber1() {
    return number1;
}

public void setNumber1(int number1) {
    this.number1 = number1;
}

public int getNumber2() {
    return number2;
}

public void setNumber2(int number2) {
    this.number2 = number2;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

protected DataObject(Parcel in) {
    number1 = in.readInt();
    number2 = in.readInt();
    name = in.readString();
}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(number1);
    dest.writeInt(number2);
    dest.writeString(name);
}

@SuppressWarnings("unused")
public static final Parcelable.Creator<DataObject> CREATOR = new Parcelable.Creator<DataObject>() {
    @Override
    public DataObject createFromParcel(Parcel in) {
        return new DataObject(in);
    }

    @Override
    public DataObject[] newArray(int size) {
        return new DataObject[size];
    }
};
}
当我将鼠标悬停在红色高亮显示的构造函数上时,它会显示:

无法应用DataObject中的DataObject(地块)

编译器说:

错误:(30,50)错误:类中的构造函数PointCardMainData PointCardMainData无法应用于给定类型; 必需:包裹 找到:没有参数 原因:实际参数列表和正式参数列表长度不同

有人知道少了什么吗?我必须在manifest-order-gradle文件中设置一些内容吗?在建立项目之前,我必须做些什么吗


致以最诚挚的问候

在DataObject类中添加构造函数

public DataObject()
{}

您在
数据对象
类中只编写了一个构造函数,它指定如何从
地块
生成
数据对象。现在,您正在尝试创建一个没有包裹的
数据对象。您需要在行
DataObject bla=newdataobject()中添加一个
packet
或添加新构造函数

所以你可以写

 Parcel theParcel = new Parcel();
 DataObject bla = new DataObject(theParcel);
或者在
DataObject
类中可能有一个构造函数,如

public DataObject(){
}

谢谢!这很容易:-PTHX。第一方面,我肯定我尝试过你(和用户3374345S)的解决方案。。。我真想知道为什么它今天起作用。有时我觉得你必须重新启动android studio才能获得正确的行为。。。另一方面,我想知道为什么在大多数可打包对象教程中没有提示,您有一个空构造函数。。。
public DataObject(){
}