Как установить одно и то же значение для нескольких ключей в свойствах Java?

Я хочу добиться чего-то вроде -

File.properties contains,

    prop1, prop2 = valueX
    prop3, prop4 = valueZ

where `props.getProperty("prop1");` should return `valueX`

Я знаю, что один из способов — записать одно и то же значение снова с разными ключами, но это делает мой файл свойств загроможденным и не обеспечивает аналитического представления для бизнес-целей.

PS: Если это как-то возможно, опишите случай, когда один и тот же ключ появляется с разными значениями.

«но это делает мой файл свойств загроможденным» - я думаю, что так было бы более читаемо

Jacob G. 27.02.2019 22:12

Формат, который вы описали выше prop1, prop2 = valueX, не поддерживает java.util.Properties, поэтому вам придется написать свой собственный код для чтения и анализа строк, которые выглядят так. Прочитайте файл построчно, затем проанализируйте каждую строку, ища символы-разделители, такие как = и ,.

Jesper 27.02.2019 22:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
1 100
1

Ответы 1

I wish to achieve something like

File.properties contains,

prop1, prop2 = valueX
prop3, prop4 = valueZ

where props.getProperty("prop1"); should return valueX

Документация для формат файла .properties и DTD для формата свойств XML обеспечивает только сопоставление одного ключа за раз с соответствующим литеральным значением. Эти простые форматы не поддерживают то, что вы описываете. Единственная альтернатива, которую они предоставляют, - это дать значение для каждого ключа отдельно, дублируя значения по мере необходимости.

that makes my property file cluttered and does not provide an analytical view for the business purpose.

Я думаю, это в глазах смотрящего. Лично я думаю, что ваш вариант - это просто обратная сторона той же медали. В любом случае неясно, делают ли это ключи с одинаковыми значениями случайно или потому, что важно, чтобы их значения были одинаковыми. А что касается написания таких файлов для человеческого потребления, я предпочитаю, чтобы ключи были отдельными, так как это облегчает их поиск и позволяет лучше группировать и сортировать их.

If it is somehow possible then, please describe the case where the same key appears with different values.

Хм? Каждый ключ должен иметь ровно одно значение. Не задокументировано, что должно произойти, если один и тот же ключ появляется более одного раза.

Возможно, вы имеете в виду, что один и тот же ценность назначается разным ключи, но я не понимаю, почему это в любом вопросе. Тем не менее, здесь:

prop1 = valueX
prop2 = valueX
prop3 = valueZ
prop4 = valueZ

Обратите внимание, что символы = можно заменить на : или просто пробел, если хотите. Если вам это не нравится, вы можете определить свой собственный формат и написать собственный код для разбора экземпляра в объект Properties.

Другие вопросы по теме