gpt4 book ai didi

java - Properties.contains() 的意外输出

转载 作者:行者123 更新时间:2023-11-29 09:44:57 27 4
gpt4 key购买 nike

我从 Properties.contains() 得到了意外的输出...

这是我的代码...

File file = new File("C:\\ravi\\non-existing.no");
Properties pro = System.getProperties();
pro.put("file", file);
System.out.println(pro.contains(file)); //PRINTS TRUE , AS EXPECTED

File file2 = file;
System.out.println(pro.contains(file2)); //PRINTS TRUE , AS EXPECTED

File file3 = new File("C:\\ravi\\non-existing.no");
System.out.println(pro.contains(file3)); //EXPECTED FALSE , BUT PRINTS TRUE

File file4 = new File("C:\\ravi\\non.no");
System.out.println(pro.contains(file4)); //PRINTS FALSE , AS EXPECTED

我期待 Properties 检查 File 是否存在,但这似乎不起作用。谁能帮我解释一下为什么 file3 没有按我的预期工作。

最佳答案

这是预期的,因为 Properties#contains() 将调用 File#equals(),后者又委托(delegate)给 fs#compare() 按字典顺序比较两个抽象路径名。即,指向同一路径的两个文件确实是相等的。

关于java - Properties.contains() 的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958977/

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