【Java】オートボクシングについて

Java 5.0からは基本データ型(プリミティブ型)とラッパークラス間で
明示的な変換を行わずに代入や演算が出来るオートボクシング、アンボクシングという仕組みがある。

オートボクシング

intの値10(基本データ型)がそのままIntegerクラスのインスタンス内にセットされる。

アンボクシング

ラッパークラスのインスタンス内の値を自動的に取り出して基本データ型に代入している。

 
アンボクシングでintに自動変換された値を演算して
結果を再度オートボクシングでラッパークラスへ代入している例

オートボクシングを使う上でのメリット、デメリットをそれぞれまとめる

メリット
変換処理を書かなくても良い。

デメリット
プログラム中、意図しない動作の原因にもなり得る。
参照型のラッパークラスのオブジェクトを == 演算子で比較してしまい意図しない結果を生む可能性がある。
(==演算子での比較についてはこちら)

オートボクシングはvaluOfメソッドによって行われているため、
-128から127の値の範囲内でオートボクシングによって生成されたオブジェクトは常に※同一のオブジェクトとなり、それ以外の範囲だと異なるオブジェクトになる点も注意しておきたい。

※ == で比較してtrue

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください