2017-05-06 7 views
1

ファイルを読み込み、テキストをオブジェクトに変更してからarraylistに追加する際に問題があります。ファイル内のオブジェクトをarraylistに読み込む

これは読むために私のコードであり、ファイル

public class ReadWrite { 

    public void save(String filename, ArrayList<Sale> buildings) throws IOException{ 
     ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename)); 
     oos.writeObject(buildings); 
     oos.close(); 
    } 
    public ArrayList<Sale> load(String filename) throws ClassNotFoundException, IOException { 
     ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename)); 
     buildings = (ArrayList<Sale>)ois.readObject(); 
     ois.close(); 
     return buildings; 
    } 
} 

を書く問題は、ArrayListにオブジェクトからの未チェックのキャストと言っている

buildings = (ArrayList<Sale>)ois.readObject(); 

です。フォーラムでこの問題を検索しても見つからないようです。

+0

投稿全体logcat – Kaushal28

+2

明らかにチェックされていないキャストになりますが、使用する前に入力ストリームを閉じることが問題です。 –

+0

これは唯一の警告です。それを無視します。 – Bohemian

答えて

0

ここではあまり関係ありません。

ois.readObject();は返品タイプを持っていますオブジェクト;単にストリームが任意のストリーム内のコンテンツを知ることができないからです。しかし、あなたはコンパイラに "ArrayListでなければならないと思う"と伝えます。コンパイラはあなたに "あなたはそれを知ることはできません!"

instanceofを使用してオブジェクトのタイプをチェックするか、注釈を使用して警告を抑制することができます。

オブジェクトが実際にinstanceof ArrayListの場合、より安全な解決策はもちろん、そのキャストを行うだけです。

ここでは、この警告を無視( "安全")することができます。あなたがそのファイルに書いたことをあなたが知っているからです。しかし、あなたがうんざりすると、実行時に例外が発生する可能性があります。

関連する問題