1
- 父類的父類
- 子類ChildClass1從父類繼承
- 子類ChildClass2它繼承自父類
在ParentClass中只有一個方法會被子類繼承。兩個子類都有不同的字段和getter和setter(getter和setter不在代碼示例中顯示)。 子類是csv文件(OpenCSVReader)的表示。雖然這與我的問題沒有關係,但爲了完整起見,這些字段用約束條件進行了註釋。
public class ParentClass {
public boolean myMethod(){
}
}
public class ChildClass1 extends ParentClass{
@NotNull
private String child1Field1
@NotNull
private String child1Field2
}
public class ChildClass2 extends ParentClass{
@NotNull
private String child2Field1
@NotNull
private String child2Field2
}
此外,我有一個完全不同的類的方法。這些都是使用OpenCSVReader方法的第一線(進一步的方法也CsvToBean等使用 - 沒有顯示,因爲它是沒有必要的問題本身):
private boolean compareFiles(File created, File template, ReportType reportType, Class<ChildClass1> reportClass) throws Exception{
CSVReader readerTest = new CSVReader(new FileReader(created),';','\'');
CSVReader readerTemplate = new CSVReader(new FileReader(template), ';', '\'');
HeaderColumnNameTranslateMappingStrategy<ChildClass1> strat = new HeaderColumnNameTranslateMappingStrategy<>();
strat.setType(reportClass);
我試圖實現的是動態更改HeaderColumnNameTranslateMappingStrategy
中的類類型以及 strat.setType
中的靜態類,以便可以在此上下文中使用ChildClass1和2以及更多的ChildClass。換句話說,我想將這些參數作爲參數傳遞給方法compareFiles()
。
我已經嘗試過仿製藥,但目前爲止它還沒有工作。可能泛型是解決方案,但我對這個概念並不是很熟悉。
我希望我能夠清楚地描述問題。如果不是,請不要猶豫,通過評論問。