Java 我可以引用属性文件中的另一个属性吗(使用${property})

Java 我可以引用属性文件中的另一个属性吗(使用${property}),java,properties,parameters,include,Java,Properties,Parameters,Include,可能重复: 看看我的“file.properties”: 为什么当我得到“key2”的值时,我的结果是“${key1}Martin!”而不是“我的名字是Martin!” =>我用Java 6编程 =>我使用java.util.Properties您想用java做的事是不可能的 属性键和值只是字符串。没有对它们进行处理,因此不能在值中引用其他值。您可能需要查看Apache配置 在它支持的许多特性中,有一个是 Ant文件是脚本;属性文件是字符串的存储桶 属性文件的主要用途是用作可翻译文本的字符

可能重复:

看看我的“file.properties”:


为什么当我得到“key2”的值时,我的结果是“${key1}Martin!”而不是“我的名字是Martin!”

=>我用Java 6编程

=>我使用java.util.Properties

您想用java做的事是不可能的


属性键和值只是字符串。没有对它们进行处理,因此不能在值中引用其他值。

您可能需要查看Apache配置


在它支持的许多特性中,有一个是

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类中是没有意义的,因为字符串通常需要来自应用程序的数据。该类可用于执行替换

此类型的格式不应与以下指定的其他格式选项混淆:


奇怪的使用ANT你可以做到这一点。Java怎么了?ANT与Java属性无关。我对ANT中引擎盖下的东西的(有限的)理解是它是被解析的。Java属性文件只是文本文件,包含可以加载到内存中的字符串键和字符串值。不要引用我的话。“Java怎么了?”我想你是指Java.util.Properties怎么了,答案是它不做属性扩展,也不声称做了。似乎它应该这样做。但听起来像使用ANT这样的Apache配置会更好。就是这样!name=Martin myKey=hi${name}!字符串结果=新属性配置(“myFile.properties”).getString(“myKey”);=>“结果”的值是“嗨,马丁!”
Hello, Martin!
Martin, Hello!
System.out.format("%s, %s!%n", what, who);