Java ラッパークラスとボクシング変換

Javaのラッパークラスとボクシング変換についてです。

目次

ラッパークラス ラッパークラスとは
ボクシング変換 基本型からラッパーオブジェクトへの変換
アンボクシング変換 ラッパーオブジェクトから基本型への変換

ラッパークラスとは

データ型の基本型に対応してラッパークラスがあります。

例えば、intに対してのIntegerがあります。
intがデータ型の基本型でIntegerがラッパークラスです。

ラッパークラスはデータ型の基本型にメソッドが付いたクラスです。
ラッパー(≒wrap)は、包むという意味です。

以下は、intとIntegerクラスの関係を表した図です。

基本型とラッパークラスどちらでも使える場面では基本型を優先します。
ラッパークラスはオブジェクトの生成が行われ(性能面)またnull値の考慮も必要のためです。

基本型 ラッパークラス
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

基本型は先頭が小文字に、ラッパークラスは先頭が大文字になっています。

 

基本型からラッパーオブジェクトへの変換

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

コード

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

package test1;

public class Test1 {
    public static void main(String[] args) {
          
      // 方法1:ボクシング変換
      Integer t1 = 1;
      
      // 方法2:メソッドを使う
      Integer t2 = Integer.valueOf(1);
      
      // 方法3:コンストラクタを使う
      Integer t3 = new Integer(1);
    }
}

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

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

 

ラッパーオブジェクトから基本型への変換

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

コード

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

 package test1;

public class Test1 {
    public static void main(String[] args) {
          
      // 方法1:アンボクシング変換
      Integer t1 = 1;
      int t2 = t1;
      
      // 方法2:メソッドを使う
      Integer t3 = 1;
      int t4 = t3.intValue();
    }
}

7,11行目は、説明のためラッパーオブジェクトに値をセットしています。
8行目は、アンボクシング変換でラッパーオブジェクトから基本型へ変換しています。
12行目は、IntegerクラスのintValueメソッドでラッパーオブジェクトから基本型へ変換しています。

関連の記事

Java データ型とデータ型を調べる方法

△上に戻る