這似乎是一個非常標準的問題,但它非常簡單,我不知道該怎麼做。從我在其他地方讀過的內容可以看出,這是由ArrayLists在未指定參數的情況下進行初始化時由泛型引起的。我也知道,當我註釋掉ArrayList<Integer> p = (ArrayList<Integer>)is.readObject();
時,警告沒有出現,所以我敢肯定編譯器存在一個泛型安全問題,我試圖將Object
轉換爲ArrayList<Integer>
。我怎樣才能保存ArrayList
而不造成這種情況?保存ArrayLists時由泛型引起的Java編譯器警告
下面的代碼:
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();}
}
}
那麼你去,哈哈。感謝那。 –