バイナリ ファイルからオブジェクトを読み取るメソッドを作成したいのですが、ジェネリックを使用して一般化したいと考えています。
私はこのコードを持っています:
@SuppressWarnings ("unchecked")
public static <T> T readFromBinaryFile (String filename){
T obj = null;
if (FileUtils.existsFile (filename)){
ObjectInputStream ois = null;
try{
ois = new ObjectInputStream (new FileInputStream (filename));
obj = (T)ois.readObject ();
}catch (IOException e){
Debug.out (e);
}catch (ClassNotFoundException e){
Debug.out (e);
}finally{
try{
if (ois != null) ois.close();
}catch (IOException e){
Debug.out (e);
}
}
}
return obj;
}
実行すると、ClassCastException が発生します。私はJavaのテンプレートについて何も知らないので、どんな情報でも評価されます。消去、コンパイル時間、実行時間に関連するものを読みましたが、この ClassCastException が発生する理由がよくわかりません。
ありがとう。
編集:私はこのようにメソッドを呼び出します:(
FileUtils.readFromBinaryFile (filename);
なし "")