我正在创建一个Android应用程序,我需要以List的形式将double值(BodySize)保存到文件中以绘制图形。实际上这个代码是'List'的形式,我试着把它改成'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;
}
答案 0 :(得分:2)
new ArrayList<double[]>()
创建一个双精度数组列表,而不是双精度数列表。列表本身是一个数组(可变长度),所以只需使用:
List<Double> newList = new ArrayList<Double>();
答案 1 :(得分:0)
Bodysize是一个double,列表是double [](double数组)
答案 2 :(得分:0)
List<double[]> list = getDoubles();
list.add(BodySize);
BodySize
的类型为double
,而List<double[]>
的格式为double[]