#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.