1
私はConfigurationProviderBuilderを作成するいくつかのJavaコードを持っています。ネストされたyaml構造体を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
ExampleConfで使用するために、このコードをJavaコードに変換するにはどうすればよいですか?私はまだJavaを使用速度まで取得しています
、これはPythonで私のために非常に簡単になります。
ねえ、これは良いアイデアのように思えます。私は今エラーでヒットしています **スレッド "main"の例外java.lang.IllegalArgumentException: 'path one、path two'の値をキャストすることができません** – Zack
バインディングに問題があります。これは近くにあるようだ。 – Zack
私はcfg4jの経験がありません。もしこれを行う必要があれば、おそらくSnakeYamlの直列化解除機能を使用します。私はcfg4jの抽象化がそれに追加するものが不明です。 – flyx