2017-04-27 2 views
2

Je travaille avec un ancien projet et ont la ligne suivante:java System.getProperties(). Put();

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

Est-ce que cette ligne modifiez la propriété du système http.proxyHost?

+2

Vous pouvez vérifier par un autre 'getProperties' immédiatement après. S'il vous plaît signaler. – Thilo

Répondre

0

Votre code ne modifiera que l'objet retourné de l'appel System.getProperties(). Mais il semble que les prochains appelants utilisent le même objet de propriétés. Donc, la réponse est oui.

+0

Le Javadoc (qui pourrait être plus clair pour être sûr) fait sonner comme si cet objet est un singleton qui sera également retourné aux appelants suivants. – Thilo

+0

Oui. Merci @Thilo. Edited la réponse. – Shinchan

0

Oui, il fonctionne:

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 
1

Il ne modifie pas les propriétés du système en dehors de vous programme.

System.getProperties() renvoie un objet Properties. Chaque appel à la méthode getProperties() renvoie l'objet identique.

Mais vous pouvez ajouter ou remplacer des propriétés dans cet objet et cela est fait avec l'appel à put. En effet, dans votre programme, la valeur renvoyée par System.getProperties().get("http.proxyHost") est modifiée.