【发布时间】:2017-04-27 08:36:03
【问题描述】:
我在一个旧项目上工作,并且有以下行:
System.getProperties().put("http.proxyHost", proxyHost);
此行是否会更改系统属性 http.proxyHost?
【问题讨论】:
-
之后您可以立即通过另一个
getProperties进行检查。请回来报告。
标签: java properties system
我在一个旧项目上工作,并且有以下行:
System.getProperties().put("http.proxyHost", proxyHost);
此行是否会更改系统属性 http.proxyHost?
【问题讨论】:
getProperties 进行检查。请回来报告。
标签: java properties system
它不会更改您程序之外的系统属性。
System.getProperties() 返回一个Properties 对象。每次调用 getProperties() 方法都会返回相同的对象。
但您可以在此对象中添加或覆盖属性,这通过调用 put 来完成。
所以实际上,在你的程序中System.getProperties().get("http.proxyHost")返回的值被改变了。
【讨论】:
是的,它有效:
System.getProperties().put("http.proxyHost", "1.2.3.4");
String x = (String) System.getProperties().get("http.proxyHost");
System.out.println(x); // prints 1.2.3.4
【讨论】:
您的代码只会修改 System.getProperties() 调用返回的对象。 但似乎下一个调用者使用相同的属性对象。所以,答案是肯定的。
【讨论】: