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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 嵌套类包裹_Java_Android_Inner Classes_Parcelable - Fatal编程技术网

Java 嵌套类包裹

Java 嵌套类包裹,java,android,inner-classes,parcelable,Java,Android,Inner Classes,Parcelable,我需要知道如何使嵌套类可打包 创建嵌套类时,会出现错误(它需要将地块作为参数) 代码: 公共类BookingDetailsItem实现可包裹{ 私人服务提供商项目服务提供商; 公开任命详情; 私人弦乐; 公共预订详细信息站点M(服务提供商项目服务提供商) { this.serviceProvider=serviceProvider; appointmentDetails=new Appointment();//此处它要求将地块作为必需参数 } 受保护的BookingDetailsItem(中的包

我需要知道如何使嵌套类
可打包

创建嵌套类时,会出现错误(它需要将地块作为参数)

代码:

公共类BookingDetailsItem实现可包裹{
私人服务提供商项目服务提供商;
公开任命详情;
私人弦乐;
公共预订详细信息站点M(服务提供商项目服务提供商)
{
this.serviceProvider=serviceProvider;
appointmentDetails=new Appointment();//此处它要求将地块作为必需参数
}
受保护的BookingDetailsItem(中的包裹){
serviceProvider=in.readParcelable(ServiceProviderItem.class.getClassLoader());
appointmentDetails=in.readParcelable(Appointment.class.getClassLoader());
notes=in.readString();
}
公共静态最终创建者=新创建者(){
@凌驾
公共预订详细信息站点M createFromParcel(中的地块){
返回新的BookingDetailsItem(在中);
}
@凌驾
public BookingDetailsItem[]新数组(整数大小){
返回新的BookingDetailsItem[大小];
}
};
公共字符串getNotes(){
回条;
}
公共无效设置注释(字符串注释){
this.notes=注释;
}
@凌驾
公共int描述内容(){
返回hashCode();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeparceable(serviceProvider,标志);
目的地可写可执行(任命详情、标志);
目的地书面记录(附注);
}
公共静态类预约实现了Parcelable{
私有布尔isPickup;
private Date servicingDate;//维修日期和时间。如果是提货,则为提货日期和时间。
私人字符串附加要求;
受保护的预约(包裹中){
isPickup=in.readByte()!=0;
additionalRequirements=in.readString();
}
公共静态最终创建者=新创建者(){
@凌驾
公共约会createFromParcel(包裹中){
返回新的任命(在中);
}
@凌驾
公共约会[]新数组(整数大小){
返回新约会[大小];
}
};
公共布尔值isPickup(){
返回isPickup;
}
公共无效设置拾取(布尔拾取){
isPickup=皮卡;
}
公开日期getServicingDate(){
回馈服务;
}
公共作废设置服务日期(服务日期){
this.servicingDate=servicingDate;
}
公共字符串getAdditionalRequirements(){
退货附加要求;
}
公共无效设置附加要求(字符串附加要求){
此项。额外要求=额外要求;
}
@凌驾
公共int描述内容(){
返回hashCode();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目标写入字节((字节)(isPickup?1:0));
目的书面资本(额外要求);
}
}
}

出现此错误是因为约会没有无参数构造函数。要解决此问题,只需添加一个无参数构造函数:

public Appointment() {}

你可能会问:“为什么在我实现Parcelable之前,这项功能就起作用了?”。这是因为如果一个类没有构造函数,则会自动隐式地为您添加一个无参数构造函数。因此,当您在参数中添加了带有
的构造函数后,原始的无参数构造函数将丢失。

很好的解释。。。。
public Appointment() {}