Puis-je référencer une autre propriété dans un fichier de propriétés (utilisez $ {propriété}) [dupliquer]

StackOverflow https://stackoverflow.com/questions/1412132

Question

  

Double possible:
   Comment référencer une autre propriété dans java.util.Properties?

regardez mon "fichier.properties":

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

Pourquoi, quand j'obtiens la valeur de " key2 " mon résultat est " $ {key1} Martin! " contrairement à "Mon nom est Martin!"

= > Je programme en Java 6
= > J'utilise java.util.Properties

Était-ce utile?

La solution

Vous voudrez peut-être consulter la configuration Apache,

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

Parmi ses nombreuses fonctionnalités, citons le Interpolation variable .

Autres conseils

Ce que vous voulez faire est impossible avec Java Propriétés classe .

Les clés de propriété et les valeurs sont simplement des chaînes. Aucun traitement ne leur arrive, vous ne pouvez donc pas vous référer à une autre valeur dans une valeur.

Les fichiers Ant sont des scripts. les fichiers de propriétés sont des compartiments de chaînes.

L'objectif principal des fichiers de propriétés est de servir de conteneur de chaîne pour le texte traduisible. Les chaînes de format généralement utilisées dans les ensembles de ressources utilisent un système basé sur un index. Lorsque la chaîne est traduite, l'ordre des paramètres peut être modifié dans les versions traduites de la chaîne sans avoir à modifier le code 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));

Sortie:

Hello, Martin!
Martin, Hello!

Pour les cas d'utilisation tels que celui-ci, il ne serait pas judicieux d'encapsuler les fonctionnalités de la classe Propriétés, car les chaînes ont généralement besoin de données de l'application. La classe MessageFormat peut être utilisée pour effectuer la substitution.

Ce type de formatage ne doit pas être confondu avec les autres options de formatage spécifiées par Formateur :

System.out.format("%s, %s!%n", what, who);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top