我想编写一个从二进制文件中读取对象的方法,但我想使用泛型进行概括。编写读取二进制文件的方法
我有这样的代码:
@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);
(没有 “”)
好,在Java中的模板,但他们使用<>,如在公共静态条目两次(T值) –
jun
2011-01-07 23:01:56
也许你的意思是不是像C++中的模板一样的泛型 – 2011-01-07 23:03:13