Can I reference another property in a properties f

2019-01-14 10:37发布

Possible Duplicate:
How to reference another property in java.util.Properties?

look at my "file.properties":

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

Why when I get the value of "key2" my result is "${key1} Martin !" unlike "My name is Martin !"

=> I program in Java 6
=> I use java.util.Properties

3条回答
甜甜的少女心
2楼-- · 2019-01-14 10:47

Ant files are scripts; properties files are buckets of strings.

The primary purpose of properties files is to serve as string containers for translatable text. The format strings typically used in resource bundles use an index-based system. When the string is translated, the order of the parameters can be changed in translated versions of the string without needing to change the Java code.

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

Output:

Hello, Martin!
Martin, Hello!

For use cases like this, it would not make sense to encapsulate the functionality in the Properties class because the strings usually need data from the application. The MessageFormat class can be used to perform the substitution.

This type of formatting should not be confused with the other formatting options as specified by Formatter:

System.out.format("%s, %s!%n", what, who);
查看更多
太酷不给撩
3楼-- · 2019-01-14 10:57

You might want look at Apache Configuration,

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

Among many features it supports is the Variable Interpolation.

查看更多
beautiful°
4楼-- · 2019-01-14 10:57

What you want to do is impossible using the Java Properties class.

Property keys and values are simply Strings. No processing happens to them, so you can't refer to another value in a value.

查看更多
登录 后发表回答