Являются ли свойства лучшим способом получить конкретные параметры и данные в Java-программе? - PullRequest
0 голосов
/ 06 февраля 2011

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

Каждый разЯ загружаю набор свойств, у меня должен быть класс-обертка, чтобы преобразовать все это во что-то значимое для моей программы.Скажем, я хочу загрузить цвет, я должен прочитать цвет как строку, а затем преобразовать его в цвет в моей программе.Все в свойстве является строкой.Так что числа тоже нужно конвертировать.

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

Есть что-нибудь подобное?Спасибо.

Ответы [ 3 ]

3 голосов
/ 06 февраля 2011

Вы можете использовать XMLEncoder / XMLDecoder. Это текстовые альтернативы сериализации для Java-бинов.

2 голосов
/ 06 февраля 2011

Почему нет ссылки на настройки API?Я полагаю, что использование XmlEncoder или любого другого механизма сериализации - это обходной путь.Я использую Java Preference API для хранения пользовательской информации, специфичной для приложения.Единственная проблема была в том, что по умолчанию нет методов putObject и getObject. Но есть хороший обходной путь.Смотрите ссылку о том, как хранить объекты в настройках.

2 голосов
/ 06 февраля 2011

Как упоминал KitsuneYMG, вы можете использовать десериализатор XML, чтобы упростить обработку демаршируемых настраиваемых типизированных значений; XStream - превосходная библиотека для упрощения процесса отображения поля объекта. Также рассмотрите форматы сериализации YAML и JSON в качестве альтернатив XML, они более лаконичны и потенциально просты в управлении, и оба имеют хорошие Java-привязки.

Более того, благодаря доступу к этим настраиваемым объектам через шаблон фабрики вы можете лучше контролировать загрузку особых случаев (например, автоматических тестов), а также документов XML из ресурсов файловой системы или загрузчика классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...