Java 属性类构造函数描述的意义
对于属性类,我们将以下内容作为构造函数之一:Java 属性类构造函数描述的意义,java,Java,对于属性类,我们将以下内容作为构造函数之一: Properties(Properties default) Creates an empty property list with the specified defaults “具有指定默认值的空属性列表”是什么意思 我编写了一个演示程序来测试正在发生的事情: import java.util.*; import java.io.*; public class test { private static String z;
Properties(Properties default)
Creates an empty property list with the specified defaults
“具有指定默认值的空属性列表”是什么意思
我编写了一个演示程序来测试正在发生的事情:
import java.util.*;
import java.io.*;
public class test {
private static String z;
private static String i;
public static void main(String [] args) throws FileNotFoundException, IOException{
z = "a";
i = "b";
Properties p = new Properties();
p.setProperty("z",z);
p.setProperty("i",i);
p.store(new FileOutputStream("r.txt"), null);
Properties pp = new Properties(p);
pp.store(new FileOutputStream("random.txt"), null);
pp.load(new FileInputStream("in.txt"));
pp.store(new FileOutputStream("random1.txt"), null);
}
}
结果是
random.txt
为空,random1.txt
具有z=n
。新创建的属性没有默认值,因为random.txt
为空。那么构造函数描述是什么意思呢?如果我在某个地方出错,请纠正我。这意味着当它在运行时找不到属性时,它将返回默认属性,而不是复制构造函数
您可能想考虑使用。
< P> AS,默认属性(在import java.util.*;
import java.io.*;
public class test {
public static void main(String [] args) {
Properties p = new Properties();
p.setProperty("z", "z value");
p.setProperty("i", "i value");
Properties pp = new Properties(p);
pp.setProperty("i", "some other value");
System.out.println(p.getProperty("z"));
System.out.println(p.getProperty("i"));
System.out.println(pp.getProperty("z"));
System.out.println(pp.getProperty("i"));
}
}
产出:
z value
i value
z value
some other value
如果在
存储
时需要包含默认值,一个选项是使用自己的类扩展属性
,并重写存储
,以输出默认属性。属性pp=新属性(p)代码>
这允许任意嵌套默认属性的级别
比如说
Properties p = new Properties();
p.setProperty("z","hello");
p.store(new FileOutputStream("D://java1.properties"), null);
Properties pp = new Properties(p);
pp.setProperty("y","world");
System.out.println(pp.getProperty("z")); //prints hello
如果在pp
对象上调用pp.getProperty(“z”)
,并且“z”不存在,Java会在默认属性对象p
对象中查找“z”,在那里找到“z”并打印其值“hello”
有关更多详细信息,请查看:““具有指定默认值的空属性列表”是什么意思?”我的猜测是,如果没有将另一个具有与默认值相同键的属性添加到此新创建的列表中,但用户尝试按键获取该属性,则会返回默认值。如果该键(带有一个新值)后来被添加到列表中,并且用户试图通过同一个键获取属性,则它现在返回新值。@EvgheniCrujcov:会是什么?