2009-09-11 82 views

回答

27

你可能想看看Apache的配置,

http://commons.apache.org/configuration/

在它支持許多功能是Variable Interpolation

+3

就是這樣! name = Martin myKey = hi $ {name}! String result = new PropertiesConfiguration(「myFile.properties」)。getString(「myKey」); ====>「結果」的值是「hi Martin!」 – 2009-09-12 14:36:29

12

你想要做什麼使用Java Properties class是不可能的。

屬性鍵和值只是字符串。它們不會發生任何處理,因此您無法引用值中的其他值。

+0

怪異:

這種類型的格式不應該由Formatter指定的其他格式化選項相混淆。使用ANT你可以做到這一點。 Java有什麼用? – 2009-09-11 17:07:19

+3

ANT與Java屬性無關。我對(ANT)底層的東西的理解(有限的)是它被解析了。 Java屬性文件只是包含可以加載到內存中的字符串鍵和字符串值的文本文件。 – 2009-09-11 17:10:55

+0

自從我查看源代碼以來已經有一段時間了,但我認爲ant使用org.apache.commons.configuration來解析它的屬性。不要在此引用我。 – seth 2009-09-11 17:16:25

1

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! 

用例的這個樣子,這是沒有意義的封裝在屬性類的功能,因爲琴絃通常從應用程序需要的數據。 MessageFormat類可用於執行替換。

System.out.format("%s, %s!%n", what, who); 
相關問題