5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaのラッパークラスとは?なぜ必要なのかを初心者向けに解説

5
Posted at

はじめに

ChatGPT Image 2026年6月16日 00_18_31.png

Javaを学習していると、

int
double
boolean

などのプリミティブ型を使う機会がたくさんあります。

しかしある日、

Integer
Double
Boolean

という見慣れない型が登場し、

「intがあるのにIntegerって何?」

と思ったことはありませんか?

私も最初は、

「同じ数字を扱うならintだけで十分では?」

と思っていました。

今回はJavaのラッパークラスについて、初心者向けに整理してみます。


結論:ラッパークラスとは?

ラッパークラス(Wrapper Class)とは、

プリミティブ型をオブジェクトとして扱うためのクラス

です。

例えば、以下のように対応しています

プリミティブ型 ラッパークラス
int Integer
double Double
boolean Boolean
char Character

そもそもプリミティブ型とは?

Javaには大きく分けて2種類のデータ型があります。

プリミティブ型

値そのものを保持する型です。

int age = 20;
double price = 100.5;
boolean flag = true;

代表的なものは次の8種類です。

  • byte
  • short
  • int
  • long
  • float
  • double
  • char
  • boolean

プリミティブ型は処理が高速で、Javaプログラムの基本となる型です。


参照型

オブジェクトを扱う型です。

例えば、

String name = "Taro";

のStringは参照型です。

オブジェクトとして扱われるため、さまざまな機能を利用できます。


ラッパークラスはなぜ必要なの?

ここが一番重要な点になります!!

例えば次のコードを書いたとします。

List<int> numbers = new ArrayList<>();

しかしこれはコンパイルエラーになります。

なぜなら、

List

にはオブジェクトしか格納できないからです。


そのため、

List<Integer> numbers = new ArrayList<>();

と書く必要があります。

numbers.add(10);
numbers.add(20);
numbers.add(30);

このように、Integerを使うことで数字をListに格納できます。


Integerは実際には何が入っているの?

例えば、

Integer num = 100;

と書くと、

内部ではIntegerオブジェクトが生成されています。

つまり、

int num = 100;
num
↓
100

は単なる数値ですが、

Integer num = 100;

# Integer num = Integer.valueOf(100);
num
 ↓
Integerオブジェクト
 ┌─────┐
 │100  │
 └─────┘

は数値を持つオブジェクトです。

numの中に100が入っているのではなく、
100を持っているIntegerオブジェクトを指している


ラッパークラスだから使える便利な機能

ラッパークラスはオブジェクトなので、便利なメソッドが利用できます。

例えば文字列を数値へ変換する場合。

String str = "100";

int num = Integer.parseInt(str);

System.out.println(num);

実行結果

100

実務でも頻繁に登場するコードです。


オートボクシングとは?

Javaでは、

Integer num = 100;

と書くことができます。

本来なら、

Integer num = Integer.valueOf(100);

と書く必要があります。

しかしJavaが自動的に変換してくれます。

これを

オートボクシング

と呼びます。

逆に、

Integer num = 100;

int value = num;

のように自動でプリミティブ型へ戻すことを

アンボクシング

と呼びます。


覚え方

最初は次のように覚えておけば十分です。

  • int → 数字そのもの
  • Integer → 数字を持ったオブジェクト

そして、

  • Listに入れるとき
  • メソッドの機能を使いたいとき

にラッパークラスが必要になります。


まとめ

今回学んだことを整理します。

  • ラッパークラスはプリミティブ型をオブジェクトとして扱うためのクラス
  • intにはInteger、doubleにはDoubleが対応している
  • ListやSetにはプリミティブ型を直接格納できない
  • Integerなどのラッパークラスを利用する
  • Javaにはオートボクシング機能があり自動変換してくれる

私自身、最初は「intがあるのにIntegerが存在する理由」が分かりませんでした。

しかし、コレクションや実務コードを触るようになると、ラッパークラスは頻繁に登場します。

まずは

「Integerは数字を持ったオブジェクト」

と覚えておくと理解しやすいと思います。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?