我有一些Java代码可以创建ConfigurationProviderBuilder。

private static ExampleConf conf(String confFile) {
    ConfigFilesProvider configFilesProvider =
            () -> Arrays.asList(Paths.get(confFile).toAbsolutePath());

    // use local files as config source
    ConfigurationSource source =
            new FilesConfigurationSource(configFilesProvider);

    // create provider
    return new ConfigurationProviderBuilder()
            .withConfigurationSource(source)
            .build()
            .bind("", ExampleConf.class);

}


ExampleConf看起来像这样

public interface ExampleConf {
    String host();
    int port();
    String certFile();
}


最后,实际的配置文件如下所示

host: localhost
port: 8980
certFile: /usr2/certs/ca/ca.crt


这很容易,但是现在我想在yaml配置文件中创建一个嵌套结构。像这样

paths:
  - name: path one
    columns:
      - foo
      - bar
  - name: path two
    columns:
      - mario
      - luigi


如何将THIS ^转换为Java代码,以用于ExampleConf?

我仍然在跟上Java的发展速度,这对我来说使用python会容易得多。

最佳答案

尝试:

public interface ExampleConf {
    public interface MyObject {
        String name();
        List<String> columns();
    }

    List<MyObject> paths();
}

08-16 17:24