■
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を使えばできそうな感じ.
ううむ.