3

このクラスの javadoc を何度も読みましたが、それでも違いがわかりません。

.propertyNames()anEnumeration.stringPropertyNames()返すと aを返すという明らかな違いは別Setとして、私が見る限り、両方のメソッドは同じコンテンツを返します。少なくとも私の黙想はそう言っています。

これらのメソッドによって返されるコンテンツ間で結果が異なることはありますか? 私が見る唯一の可能性は、完全に同期された実装Enumeration以降にインスタンスが変更された場合、 を使用する 2 番目のメソッドが異なる結果を返す可能性があることです。しかし、それとは別に?PropertiesHashtable

4

1 に答える 1

4

これらのメソッドによって返されるコンテンツ間で結果が異なることはありますか?

絶対。ドキュメントから:

キーまたは値が文字列型でないプロパティは省略されます。

Properties extends Hashtable、これはばかげた決定でしたが、次のように記述できることを意味します。

Properties p = new Properties();
p.put(new Object(), "Wow, a non-string key");
p.put("fred", new StringBuilder("Non-string value"));

stringPropertyNames()メソッドはどちらも返しませんが、返しますpropertyNames()

于 2013-06-18T16:22:58.613 に答える