Viele Konzepte rund um Eigenschaften sind definitiv alt und fragwürdig. Es hat eine sehr geringe Internationalisierung, es fügt Methoden hinzu, die heute nur durch einen generischen Typ erreicht werden, es erweitert Hashtable, das selbst im Allgemeinen nicht verwendet wird, da seine Synchronisation von begrenztem Wert ist und es Methoden gibt, die nicht mit dem übereinstimmen In 1.2 eingeführte Auflistungsklassen und viele der Methoden, die der Properties-Klasse hinzugefügt wurden, bieten im Wesentlichen die Art der Typensicherheit, die durch Generics ersetzt wird.
Wenn es heute implementiert wird, wäre es wahrscheinlich eine spezielle Implementierung eines Map<String, String>
, und sicherlich unterstützt eine bessere Codierung in der Eigenschaftendatei.
Das gesagt, es gibt nicht wirklich einen Ersatz, der Komplexität nicht hinzufügt. Sicher ist das java.util.prefs.Preferences api das "neue und verbesserte", aber es fügt eine Ebene der Komplexität hinzu, die weit über das hinausgeht, was für viele Anwendungsfälle benötigt wird. Nur die Verwendung von XML ist auch eine Option (die zumindest die Internationalisierungsprobleme behebt), aber ein Eigenschaftenobjekt passt oft gut zu den Anforderungen und verwendet es dann.
Und was ist mit java.util.Dictionary? Es wurde aktualisiert, um Generics zu verwenden, aber es wurde auch lange als "veraltet" dokumentiert. Es ist jedoch immer noch nicht als @deprecated markiert. Ich denke, Abwertung ist ein schwieriges Problem. – omerkudat
@omerkudat, Wörterbuch ist im Grunde eine Karte vor Sammlungen in 1.2.Obwohl es nicht formal veraltet ist, befindet es sich in derselben Gruppe wie Vector. Das ist im Allgemeinen nicht bevorzugt. http://stackoverflow.com/questions/1386275/why-java-vector-class-is-considered-obsolete-or-deprecated/ – Yishai