【发布时间】:2015-11-26 09:33:15
【问题描述】:
我正在使用谷歌的 CSVReader,它需要一个类名来创建解析器。使用解析器,我正在将 CSV 文件读入列表。
考虑这段代码:
ValueProcessorProvider provider = new ValueProcessorProvider();
CSVEntryParser<A> entryParser = new AnnotationEntryParser<A>(A.class, provider);
CSVReader<A> newExternalFileCSVReader =
new CSVReaderBuilder<A>(m_NewExternalFile).entryParser((CSVEntryParser<A>) entryParser).strategy(new CSVStrategy(',', '"', '#', true, true)).build();
List<A> m_NewExternalFileData = newExternalFileCSVReader.readAll();
使用此代码,我可以读取特定于 A 类的 CSV 文件。
我还有其他几个类:B、C、D,它们都使用上面相同的代码,只是它们各自的类。
是否有一个函数可以将类名作为字符串传递,它可以根据字符串输入名称实例化 CSVReader/解析器?在哪里不必创建 3 个不同的代码部分(对于 B、C、D 类),我可以使用同一个,只需输入相关的类名?
【问题讨论】:
-
A、B、C 和 D 在任何方面是否相关或相似?