此代码:
import java.util.Properties;
public class P {
public static void main(String[] args) {
Properties defaultProperties=new Properties();
defaultProperties.put("a",1);
System.out.println("default: "+defaultProperties);
Properties properties=new Properties(defaultProperties);
System.out.println("other: "+properties);
}
}
打印:
default: {a=1}
other: {}
在eclipse luna中使用java 8。
如何使用默认值构建属性列表?
答案 0 :(得分:3)
您使用defaultProperties.put()
代替defaultProperties.setProperty()
。因此,你的" a"不被视为财产。
所以请改用:
defaultProperties.setProperty("a", "1");
properties
对象仍然会打印为空(这是new Properties(Properties defaults)
构造函数is supposed to do!)但是如果您使用:
System.out.println(properties.getProperty("a"));
你会看到你得到" 1"。
答案 1 :(得分:3)
您的代码有两个问题。
get()
和put()
时,默认属性无效。您需要执行setProperty()
和' getProperty()`。
toString()
方法并不那么复杂。请改用:
Properties defaultProperties=new Properties();
defaultProperties.setProperty("a","s");
System.out.println("default: "+defaultProperties);
Properties properties=new Properties(defaultProperties);
System.out.println("other: "+properties.getProperty("a"));
答案 2 :(得分:0)
您可以使用put()方法,但使用String作为值:
$imageField = UploadField::create('ImageEvenement', 'Image');
$imageField->setAllowedFileCategories('image');
$imageField->setAllowedMaxFileNumber(1);
我知道签名是:properties.put("a","1");
但是
Object java.util.Hashtable.put(Object key, Object value)
如果该值不是String类型,则此函数返回null。
结束:
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;
}