Java compiler warning caused by generics when saving ArrayLists
本问题已经有最佳答案,请猛点这里访问。
这似乎是一个相当标准的问题,但它太简单了,我不知道该怎么办。从我在其他地方读到的内容来看,这是由于在不指定参数的情况下初始化ArrayList时的泛型造成的。我也知道,当我评论
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import java.util.*; import java.io.*; public class FileTest { public static void main(String[] args) { String fileName ="fred.txt"; ArrayList<Integer> a = new ArrayList<Integer>(); a.add(2); a.add(3); a.add(4); try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(fileName)); os.writeObject(a); os.close(); } catch(FileNotFoundException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} try { ObjectInputStream is = new ObjectInputStream(new FileInputStream(fileName)); ArrayList<Integer> p = (ArrayList<Integer>)is.readObject(); //for(int i : p) System.out.println(i); } catch(FileNotFoundException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} catch(ClassNotFoundException e){e.printStackTrace();} } } |
I'm pretty sure there is a generics safety issue with the compiler by me trying to cast the Object to an ArrayList.
不仅仅是一个普通安全问题,一个类型安全问题。你假设接下来的事情是一个
How can I save the ArrayList without causing this?
你的问题不在于保存它,而在于取回它。在声明前加上