PHPのノリでJavaを書いていたらはまったこと第二弾として、今回はラッパークラスについて書きたいと思います。
■intとIntegerではまる
Javaのソースコードを見ていると、例えば数値を扱う変数を作るとき、以下の2通りの宣言があることに気付きました。int num = 100; Integer num2 = 100;両者の違いを正しく理解せずに、その日の気分で使い分けていたら見事にはまりました。
■intとIntegerの違い
intはプリミティブ型のひとつで、値(intの場合は特に数値)のみを扱うための型です。 初期値は0です。一方Integerはラッパークラスと呼ばれる参照型のひとつで、intを値だけでなく「振る舞い」も合わせて扱えるように定義した型となります。
「振る舞い」は平たく言うとクラスメソッド(toStringやvalueOf)のことですね。
また、Integer型は参照型のため値にnullを取ることができ、初期値も0ではなくnullになります。
ここが個人的なはまりポイントでした。
両者の違いをまとめてみると、
- Integerは値にnullもとれる
- Integerの初期値はnull、intは0
- IntegerにはtoStringやvalueOfなどのメソッドが実装されている
両者の違いを理解して、要件にあった使い分けをすることが重要ですね。
参考サイト
0 コメント:
コメントを投稿