2014-12-05 47 views
2

我已經添加對象到一個ArrayList未選中投:必需的ArrayList <type>找到對象

ArrayList<Pojazd> parking=new ArrayList<>(); 

,並寫入整個列表作爲對象到一個文件。

void exportArrayListy() throws IOException{ 
    FileOutputStream fo=new FileOutputStream("arraylista.ser"); 
    ObjectOutputStream oo=new ObjectOutputStream(fo); 
    oo.writeObject(parking); 
    fo.close(); 
    parking=null; 
} 

的問題是試圖讀取他們回來作爲一個整體時:

void importArrayListy() throws IOException, ClassNotFoundException{ 
    FileInputStream fi=new FileInputStream("arraylista.ser"); 
    ObjectInputStream oi=new ObjectInputStream(fi); 
    parking=(ArrayList<Pojazd>)oi.readObject(); 
    oi.close(); 
} 

(一切都是在嘗試捕捉所以完全不用擔心這一點)。我得到以下警告:

警告:[unchecked] unchecked cast parking =(ArrayList)oi.readObject(); 要求:ArrayList的 發現:對象

+1

的問題是在編寫該文件的代碼中,您未顯示該文件。 – bmargulies 2014-12-05 15:58:40

+0

編輯的問題:) – 2014-12-05 16:06:23

回答

4

呀,Java沒有不幸。這是它的類型系統中很多奇怪的「特徵」之一。 .readObject在泛型的概念存在之前首次創建,所以它沒有參數化,並且聲明爲返回Object。 如果警告困擾您,您可以通過在函數聲明之前添加註釋@SuppressWarnings("unchecked")來抑制它。

BTW,回覆:「一切都在try/catch語句」,你可能要添加一個finally條款和移動的oi收盤那裏,避免任由在異常情況下.readObject

相關問題