我有一些文件包含對象的日誌。每個文件可以存儲不同類型的對象,但單個文件是同類的 - 它只存儲單一類型的對象。我想編寫一個方法返回這些對象的數組,並使數組具有指定的類型(文件中的對象的類型是已知的,可以作爲參數傳遞)。將返回類型作爲參數傳遞給java?
粗略地說,我要的是類似如下:
public static <T> T[] parseLog(File log, Class<T> cls) throws Exception {
ArrayList<T> objList = new ArrayList<T>();
FileInputStream fis = new FileInputStream(log);
ObjectInputStream in = new ObjectInputStream(fis);
try {
Object obj;
while (!((obj = in.readObject()) instanceof EOFObject)) {
T tobj = (T) obj;
objList.add(tobj);
}
} finally {
in.close();
}
return objList.toArray(new T[0]);
}
上面的代碼不編譯(有一個在return語句錯誤,並在投一個警告),但它應該給你是我想要做什麼的想法。任何建議最好的方式來做到這一點?
我不認爲有可能以編程方式更改返回類型,但是不能在方法中進行相應的轉換調用這個方法? – RoflcoptrException 2011-03-12 00:07:07