近頃版/another blog@hatena/Wiki/BBS
< 自分用記録 | Think : grouping feed channel. >
仕事ノウハウのメモ。
Javaにおいては汎用のデータストアとしてHashtableやVectorなどを用いることができるが、こいつらが格納できるのはObjectのみである。しかしながらプログラムを作っていれば当然頻繁に受け渡しの必要が発生するintはObjectではない。よってHashtableやVectorには入らない。
ということでintを格納するためにはintをObjectでラップしてやらないといけない。
ちょっと考えて思い付くラップ化の方法は:
"" + i
)。しかし使用メモリサイズは大きめしかしこいつらは取りだし時の処理がめどい。めどいだけならいいのだが、めどい=それなりの記述が必要=実行jarファイルのサイズが膨らむ、という理由により大変具合がよろしくない。そこでこの方法だ:
new int[]{i}
とかするとObjectになる。取り出しも ((int [])o)[0]
と型キャストとオペレーターだけで解決する。そしてなにより実行jarファイルのサイズが小さい。 ついでに言うとこいつは(当然)Object型の配列にも入る。作るときはともかく使うときにはVectorやHashtableよりも配列の方がよい(便利だったり、実行jarのサイズが小さくなったり)ので、まあそのように。#なお、最近のJavaには気持ち悪いが便利なオートボクシング機能が存在するようなので使えるものならそっちを使った方がいいかも(言語レベルの機能ならjarサイズの縮小を期待できるから)。しかし(少なくとも今作ってるプロファイルの)iアプリのJavaのバージョンはやや古いため使えないのであった。残念。