3

我一遍又一遍地阅读了这个类的javadoc,但仍然无法弄清楚其中的区别。

除了.propertyNames()返回 anEnumeration.stringPropertyNames()返回 a的明显区别外Set,据我所知,这两种方法都返回相同的内容。至少我的想法是这样说的。

这些方法返回的内容之间的结果是否会有所不同?我看到的唯一可能性是,Enumeration如果实例自Properties实现Hashtable完全同步以来已被修改,则使用 的第二种方法可能会返回不同的结果。但除此之外呢?

4

1 回答 1

4

这些方法返回的内容之间的结果是否会有所不同?

绝对地。从文档:

省略其键或值不是 String 类型的属性。

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 回答