首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ArrayList的ArrayList时读写包

使用ArrayList的ArrayList时读写包
EN

Stack Overflow用户
提问于 2019-09-01 00:28:38
回答 1查看 76关注 0票数 0

我也在尝试读写结构化的ArrayList:ArrayList<ArrayList<Pair<Float,Float>>> points我已经看到唯一的方法是在外部ArrayList中使用这个类,但在本例中我没有这样做。这是我的完整类,我如何实现它?

代码语言:javascript
复制
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Pair;
import java.io.Serializable;
import java.util.ArrayList;

public class Cornice implements Serializable, Parcelable {

    private String number;
    private ArrayList<ArrayList<Pair<Float,Float>>> points;

    public Cornice(String n, ArrayList<ArrayList<Pair<Float,Float>>> p) {
        number = n;
        if (p!=null) points = new ArrayList<>(p);
        else points=new ArrayList<>();
    }

    protected Cornice(Parcel in) {
        number = in.readString();
        points = //MISSING
    }

    public String getNumber () {
        return number;
    }

    public ArrayList<ArrayList<Pair<Float,Float>>> getPoints () {
        return points;
    }

    public static final Creator<Cornice> CREATOR = new Creator<Cornice>() {
        @Override
        public Cornice createFromParcel(Parcel in) {
            return new Cornice(in);
        }

        @Override
        public Cornice[] newArray(int size) {
            return new Cornice[size];
        }
    };

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(number);
        //MISSING
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-01 01:09:42

Pair既不是可打包的,也不是可串行化的,所以你想做的事情是不会起作用的。您必须更改用于将点保存到其他位置的数据结构。例如,您可以将其转换为如下形式:

代码语言:javascript
复制
private ArrayList<ArrayList<Float[]>> points;

或者甚至(如果您不想支持空值):

代码语言:javascript
复制
private ArrayList<ArrayList<float[]>> points;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57739793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档