【Java】newInstanceを使ってクラス(Class)からインスタンスを作成する!

クラス(Class)からインスタンスを作成するにはConstructorクラスのnewInstanceメソッドを使用します。

newInstanceメソッドはコンストラクタのクラスにアクセスする必要があります。
また、パラメータありのコンストラクタを使用してインスタンス生成するには、getConstructorメソッドを使用します。

今回はConstructorクラスのnewInstanceメソッドを使って、以下の場合でクラスからインスタンスを作成していきます。

⚫︎ デフォルトコンストラクタでインスタンスを作成する場合
⚫︎ パラメータ付きコンストラクタでインスタンスを作成する場合

newInstanceメソッドとは

constructorクラスのnewInstanceメソッドとはクラスからインスタンスを作成することができるメソッドとなります。

newInstanceメソッドの書き方

newInstanceメソッドの構文は下記となります。

まず、constructorクラスを使用できるようにインポートします。

newInstanceメソッドの前にコンストラクタ名を指定することで指定したコンストラクタのインスタンスを作成することができます。

Classのインスタンスを作成するサンプルコード

Classのインスタンスを作成するサンプルコードを紹介します。
今回はデフォルトコンストラクタのインスタンスとパラメータ付きコンストラクタでインスタンスを作成します。

デフォルトコンストラクタでインスタンスを作成する場合

デフォルトコンストラクタでインスタンスを作成します。

出力結果

デフォルトコンストラクタで作成したインスタンス: 初期値

デフォルトコンストラクタでインスタンスを作成できました。

パラメータ付きコンストラクタでインスタンスを作成する場合

パラメータ付きコンストラクタでインスタンスを作成します。

出力結果

パラメータ付きコンストラクタで作成したインスタンス: パラメータ

getConstructorメソッドは、パラメータの型を指定すると、そのクラスの「Constructor」インスタンスを返すメソッドです。

パラメータが不要なコンストラクタ(デフォルトコンストラクタ)の 場合は、パラメータを設定しません。
メソッドを呼び出した「Class」インスタンスに そのコンストラクタがなかった場合(または、publicコンストラクタでなかった場合)は、「NoSuch MethodException」例外が発生します。

今回のポイント

constructorクラス使用してインスタンスを作成

Classからインスタンスを作成するには「Constructor」クラスを使用する

⚫︎ constructorクラスのnewInstanceメソッドを使うと、その「Constructor」表すクラスのインスタンスが作成される(newInstanceメソッドのパラメータが、そのままコンストラクタのパラメータになる)

⚫︎ newInstanceメソッドでインスタンス化する前にgetConstructorメソッドを使用することでパラメータ付きコンストラクタでインスタンスを作成することができる

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し