| 目次 | 前項目 | 次項目 | Java コアリフレクション |
package java.lang.reflect;
public final class Constructor extends Object implements Member
Constructor は、宣言クラスの 1 つの構築子に関する情報およびそこへのアクセスを提供します。クラスがインスタンス化できる場合は、Constructor を使って、反射された構築子を宣言するクラスの新規インスタンスを生成および初期化できます。
Constructor オブジェクトを生成できるのは、Java 仮想マシンだけです。ユーザコードは、クラス Class のメソッド getConstructor, getConstructors, getDeclaredConstructor, および getDeclaredConstructors から Constructor 参照を獲得します。
Constructor では、newInstance への実効パラメータを基本構築子の形式パラメータと突合わせるときに拡張変換が可能ですが、縮小変換が発生すると IllegalArgumentException をスローします。
public Class getDeclaringClass()
この Constructor オブジェクトが表す構築子を宣言するクラスの Class オブジェクトを返します。 public String getName()
この Constructor オブジェクトが表す構築子の名前を返します。これは、宣言クラスの完全な修飾名と同じです。 public int getModifiers()
この Constructor オブジェクトが表す構築子の Java 言語修飾子を整数型にコード化して返します。修飾子の解読には、Modifier クラスを使います。修飾子のコード化は、Java 仮想マシン仕様の表 4.4 で定義されています。
public Class[] getParameterTypes()
この Constructor オブジェクトが表す構築子の形式パラメータ型を表す Class オブジェクトの配列を、宣言順に返します。基本構築子がパラメータを取らない場合は、長さが 0 の配列を返します。 public Class[] getExceptionTypes()
この Constructor オブジェクトが表す基本構築子がスローする、確認済み例外のクラスを表す Class オブジェクトの配列を返します。構築子が確認済み例外をスローしない場合は、長さが 0 の配列を返します。 public boolean equals(Object obj)
この Constructor と指定オブジェクトを比較します。オブジェクトが同じ場合は true を、異なる場合は false を返します。2 つの Constructor オブジェクトの宣言クラスと形式パラメータ型が同じ場合、この 2 つは同じです。
このメソッドは、クラス Object の equals メソッドをオーバーライドします。
public int hashCode()
この Constructor のハッシュコードを返します。ハッシュコードは、Constructor の宣言クラス名のハッシュコードと同じです。
このメソッドは、クラス Object の hashCode メソッドをオーバーライドします。
public String toString()
この Constructor オブジェクトが表す基本構築子を記述する文字列を返します。文字列は Java 言語修飾子としてフォーマットされ、もしあればその後に、基本構築子を宣言するクラスの完全な修飾名、構築子の形式パラメータ型の完全な修飾名をコンマで区切ったリストの挿入句が続きます。構築子が確認済み例外をスローするならば、パラメータリストの後にスペース、単語 throws、スローされた例外型の完全な修飾名をコンマで区切ったリストが続きます。以下に例を示します:
public java.util.Hashtable(int,float)
構築子に使える修飾子は public, protected または private のどれか 1 つだけ、あるいは構築子にデフォルト (パッケージ) アクセスがある場合はどれも認められません。
このメソッドは、クラス Object の toString メソッドをオーバーライドします。
このpublic Object newInstance(Object initargs[])throws InstantiationException, IllegalArgumentException,IllegalAccessException, InvocationTargetException
Constructor オブジェクトが表す構築子を使い、指定の初期化パラメータを用いて構築子の宣言クラスの新規インスタンスを生成および初期化します。個々のパラメータは、プリミティブ形式パラメータに一致するように自動的にアンラップされ、プリミティブおよび参照の両パラメータは必要に応じて拡張変換に従います。新しく生成および初期化されたオブジェクトを返します。
InstantiationException をスローする。Constructor オブジェクトが Java 言語アクセス制御を実行し、基本構築子がアクセス不可能な場合は、生成は IllegalAccessException をスローする。initargs から獲得した実効パラメータ数値が、基本構築子に必要な形式パラメータ数値と異なる場合は、生成は IllegalArgumentException をスローする。基本構築子がパラメータを取らない場合は、initargs を null にできる。initargs 配列内の各実効パラメータについて:null の場合、NullPointerException をスローして、変換が失敗する。オブジェクトのパラメータが標準 Java ラッパークラスのインスタンスでない場合、IllegalArgumentException をスローして、変換が失敗する。IllegalArgumentException をスローする。InvocationTargetException の新規例外オブジェクトに入る。その後で、この新規例外をスローして newInstance を異常終了する。newInstance から返される。