Questo è il metodo keySet() sulla classe HashMap di JDK. Perché l'autore ha assegnato il campo (keySet) alla variabile locale ks?Assegna il campo dell'istanza alla variabile locale
public Set<K> keySet() {
Set<K> ks;
return (ks = keySet) == null ? (keySet = new KeySet()) : ks;
}
Qual è la differenza tra sopra e sotto? Questo ha qualcosa a che fare con la sicurezza del thread?
public Set<K> keySet() {
return (keySet == null ? (keySet = new KeySet()) : keySet;
}
Forse; anche se sembra che stia cercando di impostare una variabile di livello di classe, assicurando che la variabile non sia nullo e restituisca quel valore. Però non ne ho idea. Avrei bisogno di guardare l'intera classe. –
Forse per chiarezza di intenzione – alphablue
Potrebbe essere considerato come un duplicato di http://stackoverflow.com/q/28975415/3182664 http://stackoverflow.com/q/2785964/3182664 http://stackoverflow.com/q/ 37776179/3182664 http://stackoverflow.com/q/32619269/3182664 e probabilmente alcuni altri .... – Marco13