修改元模型的架构以更改/重命名列名

时间:2018-10-03 20:14:11

标签: java apache-metamodel

我正在使用Apache MetaModel来获取架构信息。有一个用例,我需要为没有头的csv文件创建[ 2, 0, 2, 0, 0, 3, 0, 0, 1, 0, 0, -2, 4, -2, 0, 0, -3, -3, -5, 1, 0, 0, 0, 2] 对象。我在单独的数据结构(CsvDataContext)中有列名。

List<String> colNames对象给出的列名称为context。我猜元模型会为没有标题的表分配一些默认的列名。

是否有任何方法可以修改"A", "B", "C", etc对象所拥有的架构?

我相信CsvDataContext应该可以,但是文档中没有公开任何允许修改元数据(如列名)的方法。

如何实现这种情况?

1 个答案:

答案 0 :(得分:1)

创建CsvDataContext时,您指定一个CsvConfigurationCsvConfiguration中的选项之一是提供ColumnNamingStrategy。缺省策略实际上是使用字母字符ABC等。但是您可以使用自定义命名策略,如下所示:

ColumnNamingStrategy columnNamingStrategy =
    ColumnNamingStrategies.customNames("id", "foo", "bar", "baz");
CsvConfiguration configuration = new CsvConfiguration(
    0, columnNamingStrategy, "UTF-8", ',', '"', '\\', true, false);
return new CsvDataContext(file, configuration);