gpt4 book ai didi

java - 属性类构造函数的描述含义

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:04 26 4
gpt4 key购买 nike

对于属性类,我们有以下作为构造函数之一:

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.txtz=n。新创建的属性没有默认值,因为 random.txt 是空的。那么构造函数描述是什么意思呢?如果我哪里错了,请纠正我。

最佳答案

作为the store documentation states ,默认属性(在 Properties(Properties) 构造函数中传递的属性)不会写入外部文件。显然你认为它们会是(一个合理的假设)。

下面的测试:

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

如果您在store 时需要包含默认值,一种选择是使用您自己的类扩展Properties 并覆盖store 以输出默认属性也是如此。

关于java - 属性类构造函数的描述含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com