我正在尝试创建一个抽象类,它有两个方法aggregate
和writeHeader
。两种方法都调用具有Class<?>
参数的静态方法。它看起来像这样:
public abstract class AbstractExtractLineMapper<T extends BaseObject> implements LineAggregator<T>, FlatFileHeaderCallback {
@Override
public void writeHeader(Writer writer) throws IOException {
TreeSet<CSVdata> csvElements = CSVDataGenerator.loadCSVstructureFromAnnotations(CLASS<?> NEEDED);
[...]
writer.write(sb.toString());
}
@Override
public String aggregate(T object) {
TreeSet<CSVdata> csvElements = CSVDataGenerator.loadCSVstructureFromAnnotations(object.getClass());
[...]
return sb.toString();
}
}
对于aggregate
,我有一个T实例,我可以在其上调用getClass()
。但我找不到用于替换Class<?> NEEDED
方法的writeHeader
的编译代码。请注意,在writeHeader
之前调用aggregate
,因为它会写入CSV文件的标头。在某些情况下,根本不会调用aggregate
(如果要写入的CSV文件没有行,只有标题)。
正如你们中的一些人可能已经注意到的,这些接口来自Spring框架(批处理模块),但我不认为需要这些信息来回答。