java System.getProperties()。put();

时间:2017-04-27 08:36:03

标签: java properties system

我使用旧项目并拥有以下内容:

System.getProperties().put("http.proxyHost", proxyHost);

此行是否更改了系统属性http.proxyHost?

3 个答案:

答案 0 :(得分:1)

它不会更改程序之外的系统属性。

System.getProperties()会返回Properties个对象。每次调用getProperties()方法都会返回相同的对象。

但您可以在此对象中添加或覆盖属性,这可以通过调用put来完成。

因此,在您的程序中,System.getProperties().get("http.proxyHost")返回的值会更改。

答案 1 :(得分:0)

您的代码只会从System.getProperties()调用中修改返回的对象。 但似乎下一个调用者使用相同的属性对象。所以,答案是肯定的。

答案 2 :(得分:0)

是的,它有效:

Task.Run(() =>
{
    var request = new HttpRequestMessage(HttpMethod.Post, "EndPointURL");
    request.Headers.Authorization = new AuthenticationHeaderValue("???", "???");
    request.Headers.Add("BatchId", "25");
    request.Headers.Add("UserName", "ABC");
    var client = new HttpClient();
    client.SendAsync(request);
});

// do stuff