Posso fare riferimento a un'altra proprietà in un file delle proprietà (usare $ {property}) [duplicato]

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

Domanda

  

Possibile duplicato:
   Come fare riferimento a un'altra proprietà in java.util.Properties?

guarda il mio " file.properties " ;:

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

Perché quando ottengo il valore di " key2 " il mio risultato è " $ {key1} Martin! " a differenza di " Il mio nome è Martin! "

= > Programma in Java 6
= & Gt; Uso java.util.Properties

È stato utile?

Soluzione

Potresti voler dare un'occhiata alla configurazione di Apache,

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

Tra le molte funzionalità supportate c'è la Interpolazione variabile .

Altri suggerimenti

Quello che vuoi fare è impossibile usando Java Proprietà classe .

Le chiavi e i valori delle proprietà sono semplicemente stringhe. Non viene eseguita alcuna elaborazione, quindi non è possibile fare riferimento a un altro valore in un valore.

I file formica sono script; i file delle proprietà sono secchi di stringhe.

Lo scopo principale dei file delle proprietà è quello di fungere da contenitori di stringhe per il testo traducibile. Le stringhe di formato generalmente utilizzate nei pacchetti di risorse utilizzano un sistema basato su indice. Quando la stringa viene tradotta, l'ordine dei parametri può essere modificato nelle versioni tradotte della stringa senza che sia necessario modificare il codice 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));

Output:

Hello, Martin!
Martin, Hello!

Per casi d'uso come questo, non avrebbe senso incapsulare la funzionalità nella classe Properties poiché le stringhe di solito necessitano di dati dall'applicazione. La classe MessageFormat può essere utilizzata per eseguire la sostituzione.

Questo tipo di formattazione non deve essere confuso con le altre opzioni di formattazione come specificato da Formatter :

System.out.format("%s, %s!%n", what, who);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top