我有一個抽象的Java類FileManager
,它包含三種文件操作方法。抽象方法覆蓋,在java中實現不同的返回類型
openFile()
abstract readFile()
closeFile()
我想指定所有的類
FileManager
內的三種方法。但是,方法readFile()
必須讀取不同類型的文件。即csv
,xls
,doc
。將來代碼甚至可能需要讀取PDF
文件。
所有這些調用的返回類型將有所不同。
這意味着當我讀取csv文件時,我將返回一個ArrayList,另一方面xls文件將返回一個HashMap,依此類推。爲了實現這一點,並使代碼工廠兼容,我計劃在每個文件類型的項目中製作一個單獨的閱讀器類。 (CSVFileReader
,DOCFileReader
,XLSFileReader
等)
有什麼辦法,在那裏我可以強制開發者可以在他的______(CSV/XLS/DOC)的FileReader實施readFile()
方法? PS:Java定義了子類中的重寫方法應該具有相同或返回類型的子類型。我的問題是如何在FileManager
實現中指定readFile()
,並且對於每種不同類型的文件也有不同的返回類型?
請閱讀我在接受的答案上留下的評論。我不相信這是一個好的解決方案,我提出的解決方案在OOP的角度更有意義 – Dici