[英]why doesn't my intelliJ IDEA suggest that I implement more methods of `Parcelable` interface?
我希望我的POJO实现Parcelable
接口:
import android.os.Parcel;
import android.os.Parcelable;
public class Phone implements Parcelable {
public int id;
public String phone;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int i) {
out.writeInt(id);
out.writeString(phone);
}
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
我是否需要实施更多方法?
如果是这样,为什么右键单击Parcelable
界面时,我的IDEA为什么不建议我实现它们?
请看一下文档: http : //developer.android.com/reference/android/os/Parcelable.html
它明确指出:
接口Parcelable.Creator接口必须作为公共CREATOR字段实现并提供,该接口从Parcel生成Parcelable类的实例。
术语MyParcelable()是构造函数。 在示例中,需要初始化接口实现对象的状态(mData字段),但Parcelable合同不需要此属性。 也就是说,您确实需要一个构造函数,除非您要通过设置器(需要依次实现)设置“ id”和“ phone”字段,但这仅在这些属性可以在设置期间更改时才有意义。对象的寿命。 因此取决于您的需求。
至于IntelliJ,它不会自动建议CREATOR,因为它只能自动建议未实现的方法-实际上,您需要通过一些专门命名的公共变量来提供创建者的事实并不常见(并且imo,但嘿),而是人工合同,IDE无法预见。
关于构造函数-接口没有构造函数,这是您的实现所需要的-自动建议应该在字段(id,phone)上作为突出显示弹出窗口,指出它们尚未初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.