¿Puedo hacer referencia a otra propiedad en un archivo de propiedades (use $ {property}) [duplicar]

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

Pregunta

  

Posible duplicado:
   ¿Cómo hacer referencia a otra propiedad en java.util.Properties?

mira mis " file.properties " ;:

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

¿Por qué cuando obtengo el valor de "clave2"? mi resultado es " $ {key1} Martin! " a diferencia de "¡Mi nombre es Martin!"

= > Programa en Java 6
= > Yo uso java.util.Properties

¿Fue útil?

Solución

Es posible que desee ver la Configuración de Apache,

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

Entre muchas características que admite se encuentra la Interpolación variable .

Otros consejos

Lo que quiere hacer es imposible usando Java Propiedades clase .

Las claves y valores de propiedad son simplemente cadenas. No les ocurre ningún procesamiento, por lo que no puede hacer referencia a otro valor en un valor.

Los archivos Ant son scripts; los archivos de propiedades son cubos de cadenas.

El propósito principal de los archivos de propiedades es servir como contenedores de cadenas para texto traducible. Las cadenas de formato que generalmente se usan en paquetes de recursos usan un sistema basado en índices. Cuando se traduce la cadena, el orden de los parámetros se puede cambiar en las versiones traducidas de la cadena sin necesidad de cambiar el código 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));

Salida:

Hello, Martin!
Martin, Hello!

Para casos de uso como este, no tendría sentido encapsular la funcionalidad en la clase Propiedades porque las cadenas generalmente necesitan datos de la aplicación. La MessageFormat se puede utilizar para realizar la sustitución.

Este tipo de formato no debe confundirse con las otras opciones de formato especificadas por Formateador :

System.out.format("%s, %s!%n", what, who);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top