我正在使用 univocity 将一些文件解析为 javabean。这些 bean 是已编译的类。但是我希望在运行时生成这些类,然后将文件解析为运行时生成的类。
完整代码在这里:gist
使用 Univocity 库的代码片段:
private static void parseBean(final Class<?> dynamicClass) throws FileNotFoundException {
@SuppressWarnings("unchecked")
final BeanListProcessor<?> rowProcessor = new BeanListProcessor<Class<?>>((Class<Class<?>>) dynamicClass);
final CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setProcessor(rowProcessor);
parserSettings.setHeaderExtractionEnabled(false);
parserSettings.getFormat().setDelimiter('|');
parserSettings.setEmptyValue("");
parserSettings.setNullValue("");
final CsvParser parser = new CsvParser(parserSettings);
parser.parse(new FileReader("src/main/resources/person.csv"));
final List<?> beans = rowProcessor.getBeans();
for (final Object domain : beans) {
final Domain domainImpl = (Domain) domain;
System.out.println("Person id is: " + domainImpl.getIdentifier());
System.out.println("Person name is: " + domainImpl.getColumnByIndex(1));
System.out.println();
}
}
该文件如下所示:
0|Eric
1|Maria
所有的值似乎都是空的,所以在解析文件并将其映射到 bean 时出现了问题......
Person id is: null
Person name is: null
是否可以使用 Univocity 库将文件解析为运行时生成的 bean/类?