файлы свойств java, использующие ключ в качестве другого значения keys, возможно ли это

#java

#java

Вопрос:

Я хотел бы знать, есть ли какой-либо способ использовать ключ в качестве значения другого ключа в файлах .properties.

Например, возможно ли это или есть какой-либо другой способ достичь чего-то подобного этому?

 key = another_key

app.name=Stack Over Flow  
app.title.welcome=Welcome to {app.name} 
  

поэтому, когда я получаю значение app.title.welcome , оно должно быть « Welcome to Stack Over Flow «

Ответ №1:

У проекта конфигурации Apache Commons есть реализация, способная выполнять интерполяцию переменных.

Прочитайте раздел с именем Интерполяция переменных

 application.name = Killer App
application.version = 1.6.2
application.title = ${application.name} ${application.version}
  

Вам понадобится эта сторонняя библиотека в вашем пути к классу, но, с другой стороны, вам не придется беспокоиться о написании еще одной реализации для этого 🙂

Возможно, вам также захочется ознакомиться с свойствами, как это сделать.

Комментарии:

1. К сожалению, 404 в свойствах, как связать.

2. commons.apache.org/proper/commons-configuration/userguide/…

3. Спасибо @lainatnavi. Я только что обновил ответ вашей обновленной ссылкой.

Ответ №2:

Возможно, вы захотите ознакомиться с конфигурацией Apache Commons. Это делает то, что вы ищете, и больше.

Ответ №3:

С java.util.Properties — нет. Но если вы напишете правильный распознаватель — это возможно. И написать этот распознаватель будет не так сложно. Просто ищите {..} в каждом значении и всякий раз, когда встречаетесь, ищите этот ключ.

Комментарии:

1. абстрактный термин, который пришел мне на ум. Любой класс, который считывает файл. Он может быть построен поверх java.util. Свойства.

Ответ №4:

Вы можете просто написать app.title.welcome=Welcome to {0} и передать app.name в качестве параметра в коде Java.