Свойства Java эффективно удерживаются от использования?

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

Разработка Свойств остановилась? Если так, какова текущая лучшая практика для этого вида свойств, saving/loading?

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

23
задан brabster 1 March 2010 в 19:59
поделиться

5 ответов

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

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

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

11
ответ дан 29 November 2019 в 02:48
поделиться

Это все еще жизнеспособное решение для простых требований к конфигурации. Им не нужна поддержка универсальных шаблонов, потому что ключи и значения свойств по своей сути являются строками, то есть они хранятся в плоских файлах ascii. Если вам нужна деактивация / маршалинг / сериализация объектов, свойства - неправильный подход. Теперь предпочтительным методом является java.util.prefs.Preferences для всего, что выходит за рамки даже умеренно сложных конфигурационных требований.

7
ответ дан 29 November 2019 в 02:48
поделиться

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

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

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

1
ответ дан 29 November 2019 в 02:48
поделиться

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

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

3
ответ дан 29 November 2019 в 02:48
поделиться

«у него нет поддержки универсальных шаблонов», зачем ему поддержка универсальных шаблонов; он имеет дело со строковым ключом и строковыми значениями Я бы не стал считать свойства Java устаревшими. Это зрелая библиотека - вот и все

3
ответ дан 29 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: