“get” vs “getProperty” 之间的区别

2022-09-02 12:45:09
Properties myProp = new Properties();
myProp.put("material", "steel");

Properties prop1 = new Properties(myProp);

System.out.println(prop1.get("material") + ", " + prop1.getProperty("material"));
// outputs "null, steel"

get 不是很类似于 getProperty,因为它返回对象的条目/属性?为什么在使用 get 时不返回“钢”?


答案 1

get继承自 ,并被声明为返回 。HashtableObject

getProperty由 引入,并被声明为返回 。PropertiesString

请注意,将参考“默认值”属性,您可以将这些属性传递到 构造函数中; 不会。在大多数情况下,它们将返回相同的值。在您给出的示例中,您使用的默认的支持属性:getPropertyPropertiesget

  • prop1直接包含 的条目,因此为什么返回 null。"material"get
  • myProp 确实包含 一个条目,所以当你调用 时,它会发现它没有直接的,而是签入,并在那里找到。"material"prop1.getProperty("material")myProp"steel"

答案 2

查看文档显示 它是继承的,并且返回 而 是 的成员 并返回 .getObjectgetPropertyPropertiesString

似乎他们应该返回相同的内容,但是再次从文档中返回:

如果在此属性列表中找不到该项,则以递归方式检查默认属性列表及其默认值。

因此,最好使用,因为如果未找到,它将返回默认值。getProperty


推荐