I pode fazer referência a uma outra propriedade em um arquivo de propriedades (use $ {property}) [duplicado]

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

Pergunta

Duplicate possíveis:
Como fazer referência a uma outra propriedade em java.util.Properties?

olhada em meus "file.properties":

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

Por que quando eu chegar o valor de "key2" meu resultado é "$ {key1} Martin!" Ao contrário de "Meu nome é Martin!"

=> programa I em Java 6
=> Eu uso java.util.Properties

Foi útil?

Solução

Você pode querer olhar para Configuração Apache,

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

Entre as muitas características que ele suporta é a Variável interpolação .

Outras dicas

O que você quer fazer é impossível usar o Java classe Properties .

chaves do imóvel e os valores são simplesmente Strings. Nenhum processamento acontece com eles, para que você não pode se referir a outro valor em um valor.

arquivos Ant são scripts; arquivos de propriedades são baldes de strings.

O objetivo principal de arquivos de propriedades é servir como recipientes de cordas para texto traduzível. As cadeias de formato tipicamente utilizados em pacotes de recursos usar um sistema baseado em índice. Quando a corda é traduzida, a ordem dos parâmetros podem ser alterados em versões traduzidas da corda sem a necessidade de alterar o 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));

Output:

Hello, Martin!
Martin, Hello!

Para casos de uso como este, não faria sentido para encapsular a funcionalidade na classe Propriedades porque as cordas geralmente precisam de dados do aplicativo. A classe MessageFormat pode ser usado para executar a substituição.

Este tipo de formatação não deve ser confundido com o outros opções de formatação, conforme especificado pelo Formatter :

System.out.format("%s, %s!%n", what, who);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top