私はunivocityを使っていくつかのファイルをjavabeansに解析しています。これらのBeanはコンパイルされたクラスです。しかし、私はランタイム中にこれらのクラスを生成し、その後、実行時に生成されたクラスでファイルを解析したいと考えています。Univocity - 実行時に生成される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
すべての値がいるようだがnullなので、ファイルを解析してBeanにマッピングするときに何かが間違っている...
Person id is: null
Person name is: null
Univocityライブラリを使用してランタイム生成Bean /クラスにファイルを解析することはできますか?
魅力的な作品です。間違って生成された注釈コードを指摘してくれてありがとうと、コード修正のためにさらに感謝します。 –