我正在制作一个android应用程序,我需要将double值(BodySize)保存为List形式的文件以绘制图形。实际上,此代码采用“列表”的形式,我尝试将其更改为“列表”。但这会使“ list.add(BodySize)”出错。我该如何解决这个问题?

 public static void updateFile(double BodySize) {

            FileOutputStream fos = null;
            ObjectOutputStream oos = null;

            try{
                List<double[]> list = getDoubles();
                list.add(BodySize);
                fos = new FileOutputStream("user_data.txt");
                oos = new ObjectOutputStream(fos);
                oos.writeObject(list);

            }catch(Exception e){
                e.printStackTrace();
                try {
                    oos.close();
                    fos.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }

            }

        }

        public static List<double[]> getDoubles() {

            FileInputStream fis = null;
            ObjectInputStream ois = null;
            List<double[]> newList = new ArrayList<double[]>>();
            try {
                fis = new FileInputStream("user_data.txt");
                ois = new ObjectInputStream(fis);

                newList = (ArrayList<double[]>) ois.readObject();

            } catch (Exception ex) {

                try {
                    fis.close();
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return newList;
        }

最佳答案

new ArrayList<double[]>()创建一个双精度数组列表,而不是一个双精度列表。该列表本身是一个数组(长度可变),因此只需使用:

List<Double> newList = new ArrayList<Double>();

10-06 16:10