
【6日でできるJava入門】基本データ型ラッパークラス
Javaでは、int
やdouble
などの**基本データ型(プリミティブ型)がありますが、これらを「オブジェクト(クラス型)」として扱いたい場合に利用できるのが「ラッパークラス(Wrapper Class)」です。ラッパークラスを使うと、基本型⇔オブジェクト型の相互変換や、数値⇔文字列変換などが簡単にできます。コレクション(List, Setなど)で数値を扱いたいときにも必須です。

1.ラッパークラスの基礎
1.1. 基本データ型とラッパークラスの対応
基本データ型 | ラッパークラス名 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
たとえば、int
のラッパークラスはInteger
、double
はDouble
です。
1.2. 基本データ型とラッパークラスの相互変換
オブジェクト化(ボクシング)
ファイル名: lesson16_1.java
基本型の値をラッパークラスで包む(=ボクシング)の基本例です。
public class lesson16_1 {
public static void main(String[] args) {
int num = 100;
Integer obj = Integer.valueOf(num); // ボクシング
System.out.println("オブジェクト: " + obj);
}
}
実行結果
オブジェクト: 100
基本型への戻し(アンボクシング)
ファイル名: lesson16_2.java
public class lesson16_2 {
public static void main(String[] args) {
Integer obj = Integer.valueOf(200);
int num = obj.intValue(); // アンボクシング
System.out.println("基本型: " + num);
}
}
実行結果
基本型: 200
2.文字列との相互変換
2.1. 文字列 → 数値(parseXXX)
入力値など文字列を数値型に変換したい場合は、各ラッパークラスのparseXXX()
メソッドを使います。
メソッド名 | 機能 |
---|---|
Byte.parseByte(String s) | 文字列をbyte型に変換 |
Short.parseShort(String s) | 文字列をshort型に変換 |
Integer.parseInt(String s) | 文字列をint型に変換 |
Long.parseLong(String s) | 文字列をlong型に変換 |
Float.parseFloat(String s) | 文字列をfloat型に変換 |
Double.parseDouble(String s) | 文字列をdouble型に変換 |
Boolean.parseBoolean(String s) | 文字列をboolean型に変換 |
サンプルプログラム
ファイル名: lesson16_3.java
public class lesson16_3 {
public static void main(String[] args) {
String s1 = "123";
int num = Integer.parseInt(s1); // "123"→123
String s2 = "3.14";
double pi = Double.parseDouble(s2); // "3.14"→3.14
System.out.println("num = " + num);
System.out.println("pi = " + pi);
}
}
実行結果
num = 123
pi = 3.14
2.2. 数値 → 文字列(toString)
数値を文字列に変換したい場合は、toString()
メソッドやString.valueOf()
を使います。
ファイル名: lesson16_4.java
public class lesson16_4 {
public static void main(String[] args) {
int num = 500;
String s1 = Integer.toString(num); // int→String
double d = 2.718;
String s2 = Double.toString(d); // double→String
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
}
}
実行結果
s1 = 500
s2 = 2.718
3.オートボクシングとオートアンボクシング
Java5以降では、基本型とラッパークラス間の変換が自動で行われる「オートボクシング/アンボクシング」がサポートされています。
ファイル名: lesson16_5.java
public class lesson16_5 {
public static void main(String[] args) {
Integer obj = 42; // オートボクシング
int num = obj + 10; // オートアンボクシング
System.out.println("num = " + num); // 52
}
}
実行結果
num = 52
4.ラッパークラスの利用例
4.1. 配列やリストで使う場合
コレクション(例:ArrayList)では基本型をそのまま格納できないため、ラッパークラスを使います。
ファイル名: lesson16_6.java
import java.util.ArrayList;
public class lesson16_6 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(10); // オートボクシングでint→Integer
list.add(20);
int value = list.get(0); // オートアンボクシングでInteger→int
System.out.println("リストの1番目: " + value); // 10
}
}
実行結果
リストの1番目: 10
5.エラー例と注意点
5.1. 変換できない文字列を変換しようとした場合
ファイル名: lesson16_7.java
public class lesson16_7 {
public static void main(String[] args) {
try {
int value = Integer.parseInt("abc"); // 変換できない
System.out.println(value);
} catch (NumberFormatException e) {
System.out.println("変換エラー: " + e.getMessage());
}
}
}
実行結果
変換エラー: For input string: "abc"
まとめ
- ラッパークラスは基本データ型をオブジェクト化し、コレクション利用や型変換・文字列変換などに便利です。
parseInt
やtoString
など、静的メソッドで型変換ができる。- オートボクシング/アンボクシングにより、自動で変換される場面も多い。