Properties defaults = new Properties();
defaults.put("color", "black");
Properties props = new Properties(defaults);
// This prints "null, black"
System.out.println(props.get("color") + ", " + props.getProperty(color));
答案 0 :(得分:5)
Java做出了Properties
子类 Hashtable
的不幸决定,而不仅仅是包含一个Hashtable
。
getProperty
方法使用默认支持Properties
,但从get
继承的Hashtable
方法却没有。所以,如果你写:
System.out.println(props.getProperty("color"));
它会像你期望的那样打印出“黑色”。
答案 1 :(得分:0)
get public V get(Object key)
从HashMap继承的方法。 返回指定键映射到的值,如果此映射不包含键的映射,则返回null。
使用构造函数new Property(默认)时,将内部字段 default 设置为默认属性。在 default 属性中使用getProperty Properties类查找时,如果Properties HashMap不包含值,则从中返回值。
public String getProperty(String key) {
Object oval = super.get(key);
String sval = (oval instanceof String) ? (String)oval : null;
return ((sval == null) && (defaults != null)) ? defaults.getProperty(key) : sval;
}