8つの基本型に対応した 8つのクラスが存在しています。ラッパークラスと呼ばれます。
基本型 | ラッパークラス |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
char | Character |
float | Float |
double | Double |
ジェネリクスには基本型を指定できません、ラッパークラスを指定します。しかし、値の代入や取り出しの際には、ラッパークラスを意識しないでソースコードを記述できます。これをオートボクシングと呼びます。
ソースコードは以下の通り。
V601/MySystem.java
(ライブラリをそのまま利用します)
V601/V601.java
import java.util.ArrayList; import java.util.List; /** * オートボクシングとラッパークラス。 */ public class V601 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { // List<int>ではなく List<Integer> List<Integer> months = new ArrayList<>(); // ラッパークラスへの変換が行われている months.add(31); months.add(28); months.add(31); months.add(30); months.add(31); months.add(30); months.add(31); months.add(31); months.add(30); months.add(31); months.add(30); months.add(31); int month = MySystem.in.getInt("月を入力してください"); if(month < 1 || month > 12) { System.out.println("入力した値は異常です。"); } else { // ラッパークラスからの変換が行われている int day = months.get(month - 1); System.out.println("うるう年ではない場合"); System.out.println(month + "月は " + day + "日間あります。"); } } }
実行結果の例は以下の通り。
月を入力してください? 6 うるう年ではない場合 6月は 30日間あります。