Подтвердить что ты не робот

Являются ли свойства Java эффективно устаревшими?

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

Было ли остановлено развитие свойств? Если да, то какая лучшая практика для сохранения и загрузки этого вида свойств?

Или я что-то пропустил?

4b9b3361

Ответ 1

Многие концепции вокруг "Свойства", безусловно, являются древними и сомнительными. Он имеет очень плохую интернационализацию, он добавляет методы, которые сегодня будут выполняться только с помощью универсального типа, он расширяет Hashtable, который сам по себе вообще не используется, поскольку его синхронизация имеет ограниченную ценность и имеет методы, которые не согласуются с Классы коллекций, введенные в 1.2, и многие из методов, добавленных в класс свойств, по существу обеспечивают тип безопасности типов, который заменяется Generics.

Если это реализовано сегодня, вероятно, это была бы специальная реализация Map<String, String> и, конечно же, поддержка лучшего кодирования в файле свойств.

Если говорить, что на самом деле нет замены, которая не добавляет сложности. Конечно, java.util.prefs.Preferences api - это "новый и улучшенный", но он добавляет уровень сложности, который намного превосходит то, что необходимо для многих случаев использования. Просто использование XML также является опцией (которая, по крайней мере, устраняет проблемы интернационализации), но объект свойств часто подходит для потребностей просто отлично, после чего его можно использовать.

Ответ 2

Он по-прежнему является жизнеспособным решением для простых требований к конфигурации. Им не нужна поддержка дженериков, потому что ключи и значения свойств по своей сути являются строками, то есть они хранятся в плоских файлах ascii. Если вам нужно un/marshaling/serialization of objects, Properties - это неправильный подход. Предпочтительный метод теперь java.util.prefs.Preferences для чего-либо, кроме даже умеренно сложных потребностей в конфигурации.

Ответ 3

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

Кроме того, он немного изменился с pre-Java 5, поскольку Javadoc говорит, что он расширяет Hashtable<Object, Object> и реализует Map<Object, Object>.

Ответ 4

"у него нет поддержки Generics",  зачем нужна поддержка дженериков? он обрабатывает строковый ключ и строковые значения  Я бы не считал свойства Java устаревшими. Это зрелая библиотека - все

Ответ 5

Структура словаря является одной из старейших наиболее используемых структур в большинстве языков программирования http://en.wikipedia.org/wiki/Associative_array, я сомневаюсь, что это было бы устаревшим.

Даже если бы их удаляли, вскоре появились новые реализации вне ядра.

У вас уже есть внешние расширения, apache commons - большие ресурсы, которые, я думаю, помогли сформировать java на протяжении многих лет, см. http://commons.apache.org/configuration/howto_properties.html.