Java ラッパークラスとは (intとIntegerの違い)

Javaのラッパークラスについてです。

目次

仕組み ラッパークラスとは
変換する 基本型からラッパーオブジェクトに変換する
  ラッパーオブジェクトから基本型に変換する

ラッパークラスとは

  • ラッパークラスはデータ型の基本型に「メソッド」等が付いてオブジェクトとして使用できる「クラス」です。
  • 例として基本型のintに対してのラッパークラスのIntegerがあります。(下表参照)
  • ラッパー(≒wrap)は、包むという意味です。
  • 基本型とラッパークラスをどちらでも使える場面では基本型を使用します。
    ラッパークラスはオブジェクトの生成が行われるので性能の観点とまたnull値の考慮も必要のためです。
  • 基本型は先頭が小文字、ラッパークラスは先頭が大文字です。
  • クラスですが、Integer i = 100;のように値をセットできます。
    → Integer i = new Integer(100)は不要
基本型 ラッパークラス
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

 

ラッパークラスの使用例

ArrayListなどのコレクションは、ラッパークラスのみ使用できます。基本型は使用できません。

		List<Integer> Num1 = new ArrayList<>();
		Num1.add(1);

1行目は、Integerを指定しています。

 

基本型からラッパーオブジェクトに変換する

基本型からラッパーオブジェクトへの変換は以下の方法があります。

  • 方法1:ボクシング変換を使う。ボクシング変換とは、基本型からラッパーオブジェクトへの変換が自動的に行われることです。
  • 方法2:IntegerクラスのvalueOfメソッドを使う。
  • 方法3:Integerクラスのコンストラクタを使う。

基本型からラッパーオブジェクトへの変換するサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
          
    	int num = 1; 

    	// 方法1:ボクシング変換
    	Integer a = num;
  
		// 方法2:メソッドを使う
		Integer b = Integer.valueOf(num);
		  
		// 方法3:コンストラクタを使う
		Integer c = new Integer(num);
	}
}

9行目は、ボクシング変換で基本型からラッパーオブジェクトへ変換しています。
12行目は、IntegerクラスのvalueOfメソッドで基本型からラッパーオブジェクトへ変換しています。
15行目は、Integerクラスのコンストラクタで基本型からラッパーオブジェクトへ変換しています。

15行目のコンストラクタを使う方法は、Java9以降ではDeprecated(非推奨)です。

 

ラッパーオブジェクトから基本型に変換する

ラッパーオブジェクトから基本型へ変換は以下の方法があります。

  • 方法1:アンボクシング変換を使う。アンボクシング変換とは、ラッパーオブジェクトから基本型への変換が自動的に行われることです。
  • 方法2:IntegerクラスのintValueメソッドを使う。

ラッパーオブジェクトから基本型への変換するサンプルです。

package test1;

public class Test1 {
public static void main(String[] args) {

		Integer num = 1;

		// 方法1:アンボクシング変換
		int a = num;

		// 方法2:メソッドを使う
		int b = num.intValue();
	}
}

9行目は、アンボクシング変換でラッパーオブジェクトから基本型へ変換しています。
12行目は、IntegerクラスのintValueメソッドでラッパーオブジェクトから基本型へ変換しています。

関連の記事

Java データ型とは(基本型と参照型)

△上に戻る