Class.forName()の使い方

Class.forName()はJavaリフレクションメカニズムの一つで、クラスの完全修飾名(パッケージ名とクラス名を含む)に基づきクラスを動的にロードし、対応するClassオブジェクトを返します。

その使い方は次のとおりです。

  1. クラスの取得: `Class.forName(String className)`

指定されたクラス名に対応する Class オブジェクトを返します。クラスが存在しないかアクセスできない場合は、ClassNotFoundException 例外がスローされます。

  1. クラス名、初期化フラグ、およびクラスローダを引数とするClass.forName(String className, boolean initialize, ClassLoader loader)静的メソッド

指定したクラス名のほかに、引数2つ目でクラスの初期化を行うか指定することができ、引数3つ目でクラスローダが指定可能です。

Class.forName()メソッドを用いてクラスをロードすると、そのクラスに関する様々な情報をClassオブジェクトから取得できます。たとえば、クラス名、パッケージ名、メソッド、フィールドなどです。また、オブジェクトの作成やメソッドの呼び出しにも使用できます。

Class.forName()メソッドは次のシナリオによく使用されます。

  1. 実行時に条件によってロードすべきクラスを決定すること。
  2. JDBCでデータベースに接続する際には、Class.forName()メソッドを使用してデータベースドライバをロードします。
  3. 設定ファイルに記載されたクラスのロード:設定ファイルにロードするクラス名を指定し、Class.forName()メソッドを使ってクラスをロードします。

Java 9以降ではClass.forName(String className)の代替メソッドであるClass.forName(String className, boolean initialize, ClassLoader loader)を利用するのが推奨されています。

というのは、新しいバージョンでは、Class.forName(String className)メソッドは非推奨と定義され、常にnullを返すからです。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds