Google検索エンジン

トップページ » Javaキャスト入門 » オートボクシング機能(JDK5.0以降)


オートボクシング機能 - JDK5.0(Tiger)からの新機能 -

  • オートボクシング機能とは?

    オートボクシング機能は、プリミティブ型と対応するラッパークラスの参照(例えば int と Integer)を自動的に相互変換する機能です。 J2SE1.4までは、プリミティブ型とラッパークラス参照を相互変換するためには、明示的にデータ型を変換する必要がありました。 コレクションにはオブジェクトしか登録できないため、プリミティブ型データをコレクションに登録したり、コレクションから取得する際など、毎回データ変換が必要でした。 J2SE5.0では、そのようなデータ型の変換が暗黙的(自動的)に行われるようになりました。


    ボクシング

    ボクシングは、プリミティブ型からクラス参照への変換です。 プリミティブ型とラッパークラスについては、暗黙的な型変換の詳細をご覧ください。 ボクシング機能により、以下のようなプログラムを記述することができます。

    サンプルソースコード
    Byte b = 100;
    Integer i = 777;
    Character chr = 'c';
    

    基本型を型変換する際の規則については、これまで通りで変更ありません。 プリミティブ型で実現されていた整数リテラル代入時の数値のワイドニング変換(short→intなどの領域を拡大する変換)は同時に行うことができますが、ナローイング変換(int→short, int→byteなどの領域を縮小する変換)はコンパイルエラーとなります。


    アンボクシング

    アンボクシングは、ラッパークラスからプリミティブ型への変換です。 暗黙の型変換についてもボクシングの場合と同じことが言えますが、暗黙の型変換はプリミティブ型のみで起こるという点にご注意ください。 アンボクシング機能により、以下のようなプログラムを記述することができます。

    サンプルソースコード
    byte b = new Byte(100);
    int i = new Integer(777);
    char chr = new Character('c');
    

    JDK5.0(Tiger)以降は、オートボクシング機能により、暗黙的に型変換されるので、一部においてラッパークラスを記述したり、intValue()などのメソッドを記述する必要がなくなりました。 オートボクシング機能とジェネリクスを活用することで、プリミティブ型値を扱うコレクションを操作するプログラムを大幅に簡略化することが可能になります。 ジェネリクスについては、ArrayListの使い方HashMapの使い方をご覧ください。

    次ページでは、int型とdouble型(基本型どうし)のキャストについて説明します。



Javaキャスト入門
書籍の紹介
  • Java ポケットリファレンス
    Java ポケットリファレンス
    発売:2011/03/25
    定価:2,709円
    著者:高江 賢
    出版:技術評論社
    内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。
  • 明解Java 入門編
    明解Java 入門編
    発売:2007/08/08
    定価:2,730円
    著者:柴田 望洋
    出版:ソフトバンククリエイティブ
    内容:丁寧な解説と適切なサンプルプログラム248編と、豊富で分かりやすい図表278点で、Javaの基礎から学習できます。Javaプログラミング初心者におすすめの一冊です。