0

我正在制作一个 android 应用程序,我需要将双精度值(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;
        }
4

3 回答 3

2

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

List<Double> newList = new ArrayList<Double>(); 
于 2012-06-21T08:56:49.420 回答
0

bodysize 是一个 double,列表是 double [] 类型(double 数组)

于 2012-06-21T08:54:12.853 回答
0
List<double[]> list = getDoubles();
        list.add(BodySize);

BodySize是类型double,而List<double[]>期望double[]

于 2012-06-21T09:09:21.087 回答