Javaの参照型変数をメソッドに渡すときの渡し方は値渡しだった.てっきり参照渡しだと思ってたらハメられた.くそう.
以下のようなコードを書いた.

static void integer(Integer i){
  i = new Integer(5);
}
public static void main(String[] args){
  Integer a = new Int(3);
  System.out.println(a);
  integer(a);
  System.out.println(a);
}

integer()に渡されたaが参照渡しなら,main()のaが指すオブジェクトが更新されるだろうと思っていたが,結果は,

3
3

だった.つまり,アドレスを渡しているだけで,integer()での変更はmain()でのアドレス参照に反映されない.
ところが,IntegerクラスにはsetValue()的なものがない.どうやらIntegerではなく,IntBufferを使えばできそうな感じ.
ううむ.