我一遍又一遍地阅读the javadoc of this class,但仍然无法弄清楚差异。
除了明显区别.propertyNames()
返回Enumeration
而.stringPropertyNames()
返回Set
,据我所知,两种方法都返回相同的内容。至少我的想法是这样说的。
这些方法返回的内容之间的结果是否会有所不同?我看到的唯一可能性是,使用Enumeration
的第二种方法可能会返回不同的结果,如果实例已被修改,因为Properties
实现了完全同步的Hashtable
。但除此之外呢?
答案 0 :(得分:4)
这些方法返回的内容之间的结果是否会有所不同?
绝对。来自文档:
省略键或值不属于String类型的属性。
Properties
延伸 Hashtable
,这是一个愚蠢的决定 - 但这意味着你可以写:
Properties p = new Properties();
p.put(new Object(), "Wow, a non-string key");
p.put("fred", new StringBuilder("Non-string value"));
stringPropertyNames()
方法不会返回其中任何一个,但会propertyNames()
。