Puoi evitare (per certi versi) questa cosa che i tipi primitivi non sono reference, quindi il loro valore non è il reference (come dice giustamente andbin), usando una classe per tenere l'int.
Dovresti rinunciare a static e sarebbe un po' scomodo nelle operazioni di assegnazione, ma puoi referenziarlo ed in + puoi anche gestire il fatto dell'accesso dai thread dichiarando il metodo set come synchronized (non so se sia questo il caso comunque, perchè hai dato poche info riguardo il tuo progetto).
La classe sarebbe simile a questa:
codice:
public class MioInteger {
public Integer var;
public void setVal (int v) {
var = v;
}
public Integer getVal () {
return var;
}
}
un oggetto MioInteger sarebbe referenziabile, e puoi usarlo in questo modo:
codice:
public class Classe {
public MioInteger var;
public Classe () {
var = new MioInteger();
}
}
....
Classe c = new Classe ();
MioInteger ref = c.var;
c.var.setVal(12);
System.out.println("var: " + c.var.getVal());
ref.setVal(123);
System.out.println("var: " + c.var.getVal());
....
l'output sarebbe: