Java -ラッパークラス-
ラッパークラス
基本データ型を包んでオブジェクトとして扱います。
他の型と変換を行うユーティリティメソッドを提供します。
ラッパークラスの主なメソッド
基本データ型をラッパークラスの変換
- コンストラクタに基本データ型を渡します。
(例)Integer n=new Integer(12);
- 又は、valueOf()メソッドを利用
(例)Integer n=Integer.valueOf(12);
コンストラクタおよびvalueOfメソッドの引数には、数値以外に文字列を渡すこともできます。
文字列を渡した場合は、文字列を数値の変換した値をラップします。
(例)Integer n=new Integer("12");
ラッパークラスを基本データ型に変換
xxxValue()メソッドを利用
(例)
Integer n=new Integer(12);
int num=n.intValue;
文字列を基本データ型に変換
parseXXX()メソッドを利用
(例)
int num=Integer.parseInt("12");
(注)コンストラクタ、valueOf、parseXXXメソッドで変換できない文字列を引数に渡した場合は例外がスローされます。
オートボクシング(Autoboxing)
コード中の基本データ型とラッパークラスの自動変換します。
他の型と変換を行うユーティリティメソッドを提供します。
Java5以降で使用可能です。
Integer n=new Integer(12);
int num =n.intValue();
下記のように簡潔に記述することも可能です
Integer n=12;
int num=n;
上記のようにコードを簡潔にするということにはメリットがありますが、自動的の変換されることで思わぬ例外を引き起こすことがあります。
サンプル例
class NullPoSample {
public static void main(String[]args){
Integer n=null;
doSomething(n); // ←ここで例外が発生します
}
static void doSomething(int n){
}
(理由)Integerクラスにはnullが代入できますが基本データ型はnullを扱えないために例外が発生します。