web-dev-qa-db-ja.com

プロパティファイル内の別のプロパティを参照できます($ {property}を使用)

可能性のある複製:
Java.util.Propertiesで別のプロパティを参照する方法

私の「file.properties」を見てください:

key1= My name is
key2= ${key1} Martin !

「key2」の値を取得したときに、結果が「$ {key1} Martin!」である理由「私の名前はマーティンです!」とは異なり

=> I Java 6
=> Java.util.Propertiesを使用します

46
Martin Magakian

Apacheの設定をご覧ください。

http://commons.Apache.org/configuration/

サポートする多くの機能の中に Variable Interpolation があります。

29
ZZ Coder

あなたがしたいことはJava Properties class を使用して不可能です。

プロパティのキーと値は単なる文字列です。処理は行われないため、値の中の別の値を参照することはできません。

14
Thomas Owens

Antファイルはスクリプトです。プロパティファイルは、文字列のバケットです。

プロパティファイルの主な目的は、翻訳可能なテキストの文字列コンテナーとして機能することです。通常、リソースバンドルで使用されるフォーマット文字列は、インデックスベースのシステムを使用します。文字列が翻訳されると、Javaコードを変更することなく、文字列の翻訳バージョンでパラメータの順序を変更できます。

String what = "Hello";
String who = "Martin";
System.out.println(MessageFormat.format("{0}, {1}!", what, who));
System.out.println(MessageFormat.format("{1}, {0}!", what, who));

出力:

Hello, Martin!
Martin, Hello!

このようなユースケースの場合、文字列は通常アプリケーションからのデータを必要とするため、機能をPropertiesクラスにカプセル化することは意味がありません。 MessageFormat クラスを使用して、置換を実行できます。

このタイプのフォーマットは、 Formatter で指定されるotherフォーマットオプションと混同しないでください。

System.out.format("%s, %s!%n", what, who);
1
McDowell