ラッパークラス【wrapper class】ラッパーオブジェクト/wrapper object
概要

代表的な用途の一つが、基本データ型(プリミティブ型)のオブジェクト化である。例えば、Javaでは「int」や「double」といった基本型はオブジェクトではないため、リストやマップなどオブジェクトを前提とする仕組みに組み込めない。
そこで、「Integer」や「Double」といったラッパークラスが用意されており、基本型の値をオブジェクトとして扱えるようになっている。文字列への変換や文字列からの数値取り出しといった操作も、ラッパークラスを通じて行うことができる。
既存のコードを変更できない場面でも活用される。外部ライブラリや古いシステムのコードは直接呼び出せないことがあるが、ラッパークラスを介在させることで利用できるようになる。その際、複雑な仕様や設定を隠蔽してシンプルな操作だけを公開したり、別の機能を追加したりすることもある。互換性の維持にも使われ、古い呼び出し方を受け付けながら内部では新しい処理へ変換するラッパークラスが用意されることがある。
セキュリティや安全性を高める目的でも用いられる。入力内容の検証や不正操作の制限、エラー発生時の共通処理の追加といった機能をラッパークラス側に持たせることで、元のコードを変えずに安全性を補強できる。設計パターンの観点では、機能を動的に追加する「Decoratorパターン」や、互換性のないインターフェースをつなぐ「Adapterパターン」の実装手段としても使われる。
(2026.5.8更新)